Hangfire只运行一次后台作业

本文关键字:一次 后台作业 运行 Hangfire | 更新日期: 2023-09-27 18:12:59

我有一个hangfire服务器运行。我创建了一个后台作业,如下所示

  BackgroundJob.Enqueue(() => new MyJob().Execute(path));

这个作业应该只运行一次,但在门户网站的处理作业部分,我看到它一次运行多次。我如何防止这种情况,并确保工作只启动一次?

Hangfire只运行一次后台作业

每次进行该调用时,它都会向DB添加另一个作业。如果你在启动中有这个,你的应用经常重启,那就会导致你报告的行为。您可以在方法调用中使用属性DisableConcurrentExecution,或者您可以通过Hangfire.RecurringJob.AddOrUpdate而不是BackgroundJob.Enqueue将作业作为定时循环作业输入到DB中

   var options = new BackgroundJobServerOptions { WorkerCount =1 };
            app.UseHangfireServer(options);

我希望这对你有帮助