我想让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