我每天都有一个定期的Hangfire工作。作为逻辑的一部分,作业获取在过去24小时内创建的实体。它在逻辑中使用DateTime.Now。我意识到,在作业失败并且几天后运行的情况下,这不是一个强大的设计。有什么办法可以将当前时间作为参数传递给定期工作吗?或者我是否需要重写逻辑以独立于当前时间?我已经尝试了RecurringJob.AddOrUpdate(() => FooAction.Execute(GetTime()), cronSchedule);
,但正如预期的那样,只是总是传递创建定期作业的时间。
一个想法是跳过定期工作并创建一个常规的Hangfire工作。作业应该做的最后一件事是创建一个新作业并将指定的时间作为参数传递。但如果可以,我宁愿使用经常性的工作。
答案 0 :(得分:0)
“您可以运行一个周期性作业,该作业负责创建非周期性作业,并将当前时间传递给这些作业。” 来自@mason的评论。