2015-04-23 126 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