如何将当前时间传递给重复的 Hangfire 作业?
How to pass current time to recurring Hangfire job?
我有一个经常性的 Hangfire 工作,每天 运行s。作为逻辑的一部分,作业获取在过去 24 小时内创建的实体。它在逻辑中使用 DateTime.Now。我意识到,在作业失败并且几天后 运行 的情况下,这不是一个稳健的设计。有什么办法可以将当前时间作为参数传递给重复作业?或者我是否需要重写逻辑以独立于当前时间?我已经尝试 RecurringJob.AddOrUpdate(() => FooAction.Execute(GetTime()), cronSchedule);
但正如预期的那样,它总是会超过创建重复作业的时间。
一个想法是跳过重复作业并改为创建常规 Hangfire 作业。作业应该做的最后一件事是创建一个新作业并将指定时间作为参数传递。但如果可以的话,我更愿意使用经常性工作。
“您可以有一个循环工作 运行 负责创建 non-recurring 工作,并将当前时间传递给这些工作。”
来自@mason 的评论。
我有一个经常性的 Hangfire 工作,每天 运行s。作为逻辑的一部分,作业获取在过去 24 小时内创建的实体。它在逻辑中使用 DateTime.Now。我意识到,在作业失败并且几天后 运行 的情况下,这不是一个稳健的设计。有什么办法可以将当前时间作为参数传递给重复作业?或者我是否需要重写逻辑以独立于当前时间?我已经尝试 RecurringJob.AddOrUpdate(() => FooAction.Execute(GetTime()), cronSchedule);
但正如预期的那样,它总是会超过创建重复作业的时间。
一个想法是跳过重复作业并改为创建常规 Hangfire 作业。作业应该做的最后一件事是创建一个新作业并将指定时间作为参数传递。但如果可以的话,我更愿意使用经常性工作。
“您可以有一个循环工作 运行 负责创建 non-recurring 工作,并将当前时间传递给这些工作。” 来自@mason 的评论。