我有一个运行中的Hangfire服务器。 我创建了如下的后台作业:
BackgroundJob.Enqueue(() => new MyJob().Execute(path));
这个任务应该只运行一次,但在网站处理作业部分中,我看到它同时运行多次。我该如何防止这种情况并确保任务只被启动一次?
我有一个运行中的Hangfire服务器。 我创建了如下的后台作业:
BackgroundJob.Enqueue(() => new MyJob().Execute(path));
这个任务应该只运行一次,但在网站处理作业部分中,我看到它同时运行多次。我该如何防止这种情况并确保任务只被启动一次?
DisableConcurrentExecution
,或者你可以通过 Hangfire.RecurringJob.AddOrUpdate
将作业输入到数据库中作为定时重复作业,而不是 BackgroundJob.Enqueue
。 var options = new BackgroundJobServerOptions { WorkerCount =1 };
app.UseHangfireServer(options);