HangFire延迟了日期任务

Dan*_*Bek 8 date task hangfire

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

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    TimeSpan.FromDays(7));
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*rry 5

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

BackgroundJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "30 4 27 6 *");
Run Code Online (Sandbox Code Playgroud)

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


AIM*_*AIM 5

正如开发人员在这里回答我的问题一样,您可以简单地使用日期而不是天。

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

2015 年 5 月 8 日 00:00。

Jerry 的答案对于 RecurringJobs 来说是正确的

RecurringJob.Schedule(
    () => Console.WriteLine("Reliable!"), 
    "00 00 05 8 *");
Run Code Online (Sandbox Code Playgroud)

每年 05/08 00:00 运行