【发布时间】:2017-03-01 14:51:28
【问题描述】:
我想运行一项需要很长时间才能完成的工作。然而 15 分钟后,触发器在作业完成之前被重新触发。我想这是处理失败作业的默认故障保险。如何将此超时时间增加到 30 分钟?
这是我的作业调度程序代码:
var trigger = TriggerBuilder.Create()
.WithIdentity(triggerName, triggerGroup)
.WithSchedule(CronScheduleBuilder
.CronSchedule(cronExpression).InTimeZone(TimeZoneInfo.Utc))
.Build();
var scheduleRequestJob = JobBuilder.Create<T>()
.WithIdentity(taskName, taskGroup)
.Build();
_scheduler.ScheduleJob(scheduleRequestJob, trigger);
【问题讨论】:
-
Quartz 中没有这样的故障安全时间。 CronTrigger 是如何定义的(cronExpression)?
-
@Rabban 这个特定工作的 cron 表达式是“0 30 12 ? * MON-FRI *”。每个工作日中午 12:30
-
从历史上看,这是由创建 pid/lock 文件的任务处理的,而 lock 文件在那里拒绝启动第二个副本
-
我觉得这个表情不错。我给你写了一个答案,如何通过一些额外的解释来防止这种奇怪的行为。给我几分钟;)
标签: c# quartz.net