2017-05-12 30 views
3

我使用石英2.5.0.0如何使一個觸發等待自己最終再次運行石英C#

,我有下面的代碼運行,我想任何工作。 我所有的工作都留在一個文件夾中,因爲我只是把它放在那裏。

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秒,但我不得不等待自身結束,只是在此之後,再次啓動相同的工作。 一種方法知道如何當胎面結束應該工作,但我沒有找到如何做到這一點。 任何想法如何讓它工作?

回答

1

我還沒有在一段時間與Quartz.NET工作,但試試這個:

  1. 裝飾你的工作類屬性[DisallowConcurrentExecution]
  2. 消防工作的兩倍。石英應該確保工作不會彼此重疊。

More Information Here