2016-08-02 107 views
0

我需要創建一個觸發器,它將在特定的日期時間列表中觸發。Quartz.Net創建在多個特定日期時間觸發的日程表

我知道我可以爲每個datetime做一個簡單的觸發器。

我當前的代碼:

var trigger = (ICronTrigger)TriggerBuilder.Create() 
       .WithIdentity(triggerKey) 
       .ForJob(job) 
       .WithCronSchedule(cron)         
       .StartAt(DateTime.UtcNow) 
       .WithPriority(1) 
       .Build(); 

回答

0

您需要將觸發與日曆相關聯,然後選擇要在其中工作火日曆的日期。

從技術文檔

石英日曆對象(未java.util.Calendar中的對象)可以 與觸發器被定義並且在調度存儲 當時觸發器相關聯。日曆對於從觸發器的發射時間表中排除時間塊 非常有用。例如,您可以創建一個觸發器,在上午9:30的每個工作日觸發一項工作,但隨後添加一個排除所有公司假期的日曆,即 。

檢查在URL http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-04.html

+0

我未能找到具有多個特定日期的Quartz日曆的正確示例。你能更具體怎麼做嗎? – SuperCuke

+0

我編輯了答案並添加了可以簽出的URL。我認爲這個URL是用於Java的。我期望在C#中相同 – Geek

0

在WithCronSchedule使用StartAt,因爲我認爲你whant將無法正常工作了。在這裏的開始只是告訴什麼時候觸發器應該開始使用cron。

根據您的要求,您可能可以創建特定於您的需求的cron。例如:

0 0 5,10 * * ? 

會在每天5點和10點觸發。

除此之外,您可能最好在每個特定日期進行一次觸發,如果您需要取消計時運行,它會更加靈活。如果您將我們的所有觸發器設置在同一個觸發器組中,您也可以立即全部敲擊它們

相關問題