hangfire 的一次性工作

One-off job with hangfire

如何使用 hangfire 运行 一次性完成工作?

看起来 CRON 语法不支持 "run at startup and never again" 类型的东西。

我不想提出固定的 CRON 日期(例如 2019-02-28T15:12),因为这在多个环境中都行不通。

有什么办法吗?

不要使用循环作业,而是在应用程序启动时将您的作业加入队列。

BackgroundJob.Enqueue(() => Console.WriteLine("Hello, world!")); 火是一次性的工作。 我会在 hangfire 之后添加这个 config at startup

我们最终得到的是一个永远不会运行的作业,但可以通过 Hangfire 触发 UI。

所以像这样:

RecurringJob.AddOrUpdate<SomeType>("name", service => service.Run(), NEVER);

对于 NEVER,我们使用 Hangfire 的 Cron.Never() 实现。看起来它使用 Each 31st of February 作为 cron 表达式。有关 their Github.

的更多信息