您好我有一个预定的工作在Quartz.net每小时运行一次:
private static void InitTimers() {
log.Info("InitTimers");
try {
var job = Quartz.JobBuilder.Create<HourlyJob>()
.WithIdentity("HourlyJob")
.Build();
var trigger = Quartz.TriggerBuilder.Create()
.WithIdentity("HourlyTrigger")
.StartAt(Quartz.DateBuilder.EvenHourDateAfterNow())
.WithSchedule(Quartz.SimpleScheduleBuilder.RepeatHourlyForever())
.Build();
_scheduler.ScheduleJob(job, trigger);
} catch (Exception ex) {
log.Error("InitTimers", ex);
}
}
我从静态类ApplicationServer调用它:
var schedulerFactory = new Quartz.Impl.StdSchedulerFactory();
_scheduler = schedulerFactory.GetScheduler();
_scheduler.Start();
InitTimers();
_scheduler也是一个静态字段。我的服务器在Windows Server 2008 R2上运行,8小时后作业总是停止。我读过它可能是因为GC,但在这种情况下,我不确定我应该做什么。任何其他想法
更新: 所以我查看了日志,发现它总是在下午6点停止。可能是我应该寻找的原因是什么?
答案 0 :(得分:0)
我有一个mein项目的代码几乎相同,但它可以工作,但是在启动调度程序之前添加作业。试试
var schedulerFactory = new Quartz.Impl.StdSchedulerFactory();
_scheduler = schedulerFactory.GetScheduler();
InitTimers();
_scheduler.Start();
停止时你有例外吗?