延迟时间的重复工作

时间:2017-04-18 07:36:31

标签: c# .net asp.net-mvc hangfire recurring

我使用的是Hangfire版本" 1.6.8"。我希望在某些DateTime之后使用Cron.Daily创建重复工作。这有可能创造延迟时间的重复工作吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

我想不出任何特别干净的方式。

您可以探索使用hangfire计划作业创建RecurringJob的途径:

new BackgroundJobClient().Schedule(() => Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("Hello World"), Cron.Daily()), startDateTime)

可以将其设置为在重复作业的第一个预期运行时间之前不久运行计划作业,因此hangfire运行计划并自行创建作业。我实际上没有尝试过这样做,所以请测试它(让我知道它是怎么回事)。

答案 1 :(得分:0)

HangFire docs,您可以使用CRON expressions。它们最初有点难以接受,但是一旦你掌握了结构,你就可以做你想要的一切。请注意,这些都是完全次,并且没有“无论何时在此之后您都会感觉到它”。当你希望它运行时告诉它。

例如,如果您希望它每天下午2点运行:

RecurringJob.AddOrUpdate(() => Console.Write("Powerful!"), "0 14 * * *");
  • 0:0分钟
  • 14:下午2点(14:00)
  • *:每月的每一天
  • *:一年中的每个月
  • *:一周中的每一天。