我在使用quartz.net的Application_start事件中安排了一个作业,触发器每1分钟触发一次,由变量repeatDurationTestData =“0 0/1 * * *?”给出; 当我第一次打开网站时,触发开始,但是当我关闭浏览器并在打开网站后再次启动时,会在一段随机时间后停止。以下是代码
IMyJob testData = new SynchronizeTestData();
IJobDetail jobTestData = new JobDetailImpl("Job", "Group", testData.GetType());
ICronTrigger triggerTestData = new CronTriggerImpl("Trigger", "Group", repeatDurationTestData);
_scheduler.ScheduleJob(jobTestData, triggerTestData);
DateTimeOffset? nextFireTime = triggerTestData.GetNextFireTimeUtc();
我在这里做错了什么,这是因为一些失火。请建议。
由于
答案 0 :(得分:2)
首先,我会在这种情况下使用一个简单的触发器,因为它需要一个重复间隔,似乎比cron触发器更合适(from lesson 5 quartz.net网站):
SimpleTrigger trigger2 = new SimpleTrigger("myTrigger",
null,
DateTime.UtcNow,
null,
SimpleTrigger.RepeatIndefinitely,
TimeSpan.FromSeconds(60));
我还建议你不要把石英调度程序放在网站上。作业系统的主要目的是独立于任何其他系统工作,因此它通常适合Windows服务。通过把它作为网站的一部分,你不能保证它会继续下去。如果您松开应用程序池或重新启动,您将无法获得可靠的结果。
有一个使用quartz.net下载的例子。
希望有所帮助。