如何让触发器等待自己再次结束 运行 Quartz C#
How to make a trigger wait itself end to run again 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]
装饰你的工作 class
- 解雇工作两次。 Quartz 应确保作业不会 运行 彼此重叠。
我正在使用 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]
装饰你的工作 class
- 解雇工作两次。 Quartz 应确保作业不会 运行 彼此重叠。