如何让触发器等待自身结束再次运行 Quartz C#

Ped*_*nco 3 c# quartz.net

我正在使用石英 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);
}
Run Code Online (Sandbox Code Playgroud)

我想让这个工作每 10 秒运行一次,但我必须等待它自己结束,在此之后,再次启动同一个工作。一种知道胎面何时结束应该如何工作的方法,但我没有找到如何做到这一点。知道如何让它工作吗?

Ada*_*one 5

我有Quartz.NET一段时间没有使用过,但试试这个:

  1. 用属性装饰你的工作类 [DisallowConcurrentExecution]
  2. 解雇工作两次。Quartz 应该确保作业不会在彼此之上运行。

更多信息在这里