Hangfire只运行一次后台作业
本文关键字:一次 后台作业 运行 Hangfire | 更新日期: 2023-09-27 18:12:59
我有一个hangfire服务器运行。我创建了一个后台作业,如下所示
BackgroundJob.Enqueue(() => new MyJob().Execute(path));
这个作业应该只运行一次,但在门户网站的处理作业部分,我看到它一次运行多次。我如何防止这种情况,并确保工作只启动一次?
每次进行该调用时,它都会向DB添加另一个作业。如果你在启动中有这个,你的应用经常重启,那就会导致你报告的行为。您可以在方法调用中使用属性DisableConcurrentExecution
,或者您可以通过Hangfire.RecurringJob.AddOrUpdate
而不是BackgroundJob.Enqueue
将作业作为定时循环作业输入到DB中
var options = new BackgroundJobServerOptions { WorkerCount =1 };
app.UseHangfireServer(options);
我希望这对你有帮助