如何每 10 分钟创建一次重复的 Hangfire 作业,仅持续 24 小时



当我有新客户注册未完成该过程时,我会向他们发送一封包含后续步骤的电子邮件。 我需要创建一个在注册后的前 24 小时内每 10 分钟运行一次的作业。 在那之后,还有另一个过程接管。 我像这样安排作业:

RecurringJob.AddOrUpdate(customerId, () => new NewCustomerProcess().checkNewCustomerStatus(customerId)), "*/10 * * * *");

如果我将作业开始时间添加到作业类:

private DateTime _jobstart = DateTime.UtcNow;

我可以在作业中检查它以确定何时经过 24 小时然后删除作业吗?

RecurringJob.RemoveIfExists(customerId);

Hangfire 是否在每次运行时重新实例化作业类?

如果我正确理解你的问题。

Hangfire 每次都会创建作业类的新实例。 因此,如果我需要解决此问题,每次创建作业时,我都会将 DateTime 作为参数传递:

RecurringJob.AddOrUpdate(customerId, () => new 
NewCustomerProcess().checkNewCustomerStatus(customerId, DateTime.Now.AddDays(2))), "*/10 * * * *");

然后在检查中NewCustomerStatus与DateTime.Now进行比较。

if (DateTime.Now > dateEnqueued)
{
//Job is complete
return;
}

相关内容

  • 没有找到相关文章

最新更新