我想讓Quartz.net調度程序工作,但我不知道爲什麼它不在未來的日期安排工作。我已經用cron觸發器進行了測試,該觸發器每分鐘都會觸發並且工作(工作和所有),所以我知道這與我的工作代碼不存在問題。這些變量是垃圾收集?
事情我已經嘗試:
- 使得ISchedulerFactory一個全局靜態變量
- 使得IScheduler一個全局靜態變量
- 我所添加的電子郵件通知的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 – 2012-02-09 17:08:28