2014-03-31 55 views
0

我在C#中使用Quartz來構建後臺作業。這裏是我的代碼:如何在Quartz中重新計劃觸發器

public class BackgroundConfig 
{ 
    private IScheduler scheduler; 

    public BackgroundConfig() 
    { 
     scheduler = StdSchedulerFactory.GetDefaultScheduler(); 
     scheduler.Start(); 
    } 

    public void ScheduleParser() 
    { 
     IJobDetail job = JobBuilder.Create<ParseJob>() 
      .WithIdentity("Parser", "Job") 
      .Build(); 

     ITrigger trigger = TriggerBuilder.Create() 
      .WithIdentity("ParserTrigger", "Trigger") 
      .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(4, 0)) 
      .Build(); 

     scheduler.ScheduleJob(job, trigger); 
    } 
} 

現在,我想重新安排ParserTrigger從另一個類。下面是代碼:

IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); 
scheduler.RescheduleJob() 

正如你可以看到,有一個叫做RescheduleJob(triggerKey, newTrigger)功能,但我不知道如何從另一個類的ParserTrigger觸發鍵。請幫幫我。非常感謝。

回答

0

從mermory,你可以這樣做:(!說明 - 未經)

IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); 

var trigger = scheduler.GetTrigger("ParserTrigger","Trigger"); 
scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger); 

+0

什麼是'Global'? – AnhTriet

+0

對不起,刪除了「Global」命名空間。再一次,這是未經測試的,但希望能指出你正確的方向 – Alex

+0

對不起,你可以看一下'GetTrigger'簽名嗎?它只接受'TriggerKey',而不是觸發器名稱和組。 – AnhTriet

相關問題