HangFire延迟了日期任务

时间:2015-04-23 13:36:22

标签: date task hangfire

如何在HangFire任务中添加日期? 例如,此代码增加了7天:

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

但是如果我需要在特定日期运行任务呢?

3 个答案:

答案 0 :(得分:5)

如果年份无关紧要,可以使用cron表达式。大多数默认的cron实现(如Hangfire使用的NCrontab)不包括年份字段。

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

这项工作将于每年6月27日凌晨4点30分执行。

答案 1 :(得分:4)

当开发人员回答我的问题here时,您只需使用日期而不是日期。

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

2015年5月5日00:00。

Jerry's对于RecurringJobs

的回答是正确的
x$datetime<-paste(x$date,x$Hour,x$Minute,sep=":")

每年将于05/08在00:00运行

答案 2 :(得分:0)

使用Cron.Yearly()每年在特定日期时间运行一次:

// Will run on 4th of July @ 8 AM UTC every year
BackgroundJob.Schedule(
    () => Console.WriteLine("Happy 4th of July!"), 
    Cron.Yearly(7, 4, 8, 0));