【发布时间】:2021-10-07 02:56:00
【问题描述】:
我正在使用 Hangfire 运行大约需要 2 小时的作业。我注意到每 30 分钟就会重新发生一次工作,而前一个工作仍在工作。因此,如果我的作业 A 在特定时间开始,则 30 分钟后,另一个作业 A 将开始运行,而前一个作业仍处于处理状态。
配置服务():
services.AddHangfire(config => config
.UseSimpleAssemblyNameTypeSerializer()
.UseDefaultTypeSerializer()
.UseMemoryStorage());
services.AddHangfireServer();
配置():
app.UseHangfireDashboard();
RecurringJob.AddOrUpdate<ISender>(i => i.A(), Cron.Daily(8, 0), timeZone: TimeZoneInfo.Local);
我已经检查了运行的方法是否存在错误、异常等,只是为了确保不会因此重试作业。经过大量测试,我认为并非如此。
任何形式的帮助都将不胜感激
【问题讨论】:
-
你定义了多少个工人?
-
您是否考虑过使用
DisableConcurrentExecution来防止执行同一作业的多个实例? -
我会尝试 DisablingConcurrentExecution 和关于workers - 我没有改变它,我认为它是20
-
DisableConcurrentExecution 不起作用
标签: asp.net-core hangfire