我在 .Net Core 应用程序中使用
Hangfire
来执行后台处理。在某些情况下,我需要退出或停止作业执行。为此,我进行了搜索并发现我可以使用BackgroundJob.Delete(jobId);
或RecurringJob.RemoveIfExists(jobId);
来停止作业,它工作正常但是,同时它也将作业标记为已删除,所以问题是应用程序池启动时到时候 Job 就不会执行了。
那么有什么方法可以退出作业而不删除它呢?
任何帮助将不胜感激!
谢谢,
您可以将 cron 表达式指定为 never。
根据 Hangfire 文档
//
// Summary:
// Returns cron expression that never fires. Specifically 31st of February
public static string Never()
{
return Yearly(2, 31);
}
示例:
using Hangfire;
RecurringJob.AddOrUpdate<IScheduledJobService>("some-id", x => x.SomeMethodToInvokeAJob(), Cron.Never());
注意:IScheduledJobService 是一个定制服务,用于管理作业的实际逻辑。