私はQuartz.netスケジューラを動作させようとしていますが、将来スケジューリングされるジョブがなぜ起動しないのか分かりません。私は1分ごとに起動するcronトリガーでテストしましたが、それは動作します(ジョブとすべて)ので、私はそれが私の仕事のコードで問題ではないことを知っています。私が試してみましたこれらの変数はガベージコレクトされていますか?
もの:
ISchedulerFactory- 私はので、私は知っているのApplication_Startの最後に電子メール通知を追加しましたそれは発射時
- 私はスケジューラのコードを変更するたびに、私はアプリを再起動し、私はそれが再起動された知っているので、通知電子メールを起動します。
私はこのプログラムを共有ホスティング環境で実行しています(それが影響を与えるかどうかはわかりません)。私の推測(そしてこれは唯一の推測です)は何かがガベージコレクトされていることですが、何や理由がわかりません。
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(Recorder));
jobDetail.JobDataMap["domain"] = "www.mydomain.com";
jobDetail.JobDataMap["userId"] = "2";
// Create trigger (everything is in UTC!!!)
CronTrigger cronTrigger = new CronTrigger("Schedule");
cronTrigger.StartTimeUtc = TriggerUtils.GetEvenSecondDate(DateTime.UtcNow);
cronTrigger.TimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); // run in pacific timezone
cronTrigger.CronExpressionString = "0 30 13 ? * MON-FRI *";
sched.ScheduleJob(jobDetail, cronTrigger);
}
この質問とその回答をお読みください:http://stackoverflow.com/questions/1356789/quartz-net-with-asp-net –