编程语言
首页 > 编程语言> > 如何使触发器等待自身结束以再次运行Quartz C#

如何使触发器等待自身结束以再次运行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应该确保作业不会相互重叠.

More Information Here

标签:quartz-net,c
来源: https://codeday.me/bug/20191026/1933069.html