2015-04-23 44 views
8

如何將日期添加到HangFire任務? 例如,該代碼添加7天:使用日期的HangFire延遲任務

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    TimeSpan.FromDays(7)); 

但是,如果我需要在特定日期運行的任務嗎?

回答

5

如果一年並不重要,則可以使用cron表達式來實現此目的。大多數默認的cron實現(如Hangfire使用的NCrontab)不包括年份字段。

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "30 4 27 6 *"); 

這項工作將於每年6月27日上午4點30分執行。

3

由於開發人員回答了我的問題here,您可以簡單地使用日期而不是日期(s)。

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    new DateTime(2015, 08, 05, 12, 00, 00)); 

對於05/08/2015在00:00。

Jerry's答案RecurringJobs

RecurringJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "00 00 05 8 *"); 

將在00:00

+0

運行每年的05/08目前有一個在'RecurringJob'類沒有'Schedule'方法是正確的。 – Deilan