【发布时间】:2015-10-02 22:09:33
【问题描述】:
我有一个将一些数据上传到 ftp 的作业,它需要在重新开始之前结束。因此,我在类中使用了 DisallowConcurrentExecution 属性。现在我的问题是当作业完成时它不会'不要再等 x 秒才能重新开始。例如:
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
sched.Start();
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("myJob", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(5)
.RepeatForever()
.WithMisfireHandlingInstructionNextWithRemainingCount())
.Build();
sched.ScheduleJob(job, trigger);
}}
[DisallowConcurrentExecution]
public class HelloJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine("start");
Thread.Sleep(5000);
Console.WriteLine("end");
}
}
这项工作开始,做某事 5 秒并结束。然而,石英立即开始下一项工作,因为它在工作开始时计算了 5 秒。 那么我该如何实现 开始工作 - 做某事 5 秒 - 结束 - 等待 5 秒 - 重新开始 - ... 与quartz.net 的行为?
【问题讨论】:
标签: c# quartz.net