0

我使用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();

我在这里做错了什么,这是因为一些失火。请建议。

谢谢

4

1 回答 1

2

起初我会在这种情况下使用一个简单的触发器,因为它需要一个重复间隔,并且似乎比 cron 触发器更适合(来自第 5 课quartz.net 网站):

SimpleTrigger trigger2 = new SimpleTrigger("myTrigger",
                            null,
                            DateTime.UtcNow,
                            null,
                            SimpleTrigger.RepeatIndefinitely,
                            TimeSpan.FromSeconds(60)); 

我还建议您不要将石英调度程序放在网站中。作业系统的主要目的是独立于任何其他系统工作,因此它通常自然地适合 Windows 服务。通过将其作为网站的一部分,您不能保证它会继续运行。如果您松开应用程序池或重新启动,您将无法获得可靠的结果。

有一个使用quartz.net 下载的示例。

希望有帮助。

于 2013-06-09T21:38:23.130 回答