9

如何将日期添加到 HangFire 任务?例如,此代码添加 7 天:

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

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

4

3 回答 3

6

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

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

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

于 2015-04-24T11:53:40.060 回答
4

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

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

2015 年 5 月 8 日 00:00。

Jerry对 RecurringJobs 的回答是正确的

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

每年 05/08 00:00 运行

于 2015-08-06T16:07:35.940 回答
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));
于 2018-06-29T13:03:37.007 回答