如何使触发器等待自身结束以再次运行Quartz C#
作者:互联网
我正在使用Quartz 2.5.0.0
而且我有以下代码来运行我想要的任何工作.
我所有的工作都放在一个文件夹中,因为我只是把它放在那里.
var scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
var t = new ImportingLib.Importer();
t.DoImport();
foreach (var component in t.CallAllComponents())
{
var job = JobBuilder.Create(component)
.WithIdentity(component.Name)
.Build();
var trigger = TriggerBuilder.Create()
.WithIdentity($"{component.Name}Trigger")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.ForJob(component.Name)
.Build();
scheduler.ScheduleJob(job, trigger);
}
我想让此作业每10秒运行一次,但是我必须等待自身结束,就在此之后,再次启动相同的作业.
一种知道胎面何时结束的方法应该起作用,但是我没有找到如何做到这一点.
知道如何使它起作用吗?
解决方法:
我已经有一段时间没有使用Quartz.NET了,但是尝试一下:
>使用[DisallowConcurrentExecution]属性装饰您的工作类别
>将作业解雇两次. Quartz应该确保作业不会相互重叠.
标签:quartz-net,c 来源: https://codeday.me/bug/20191026/1933069.html