【发布时间】:2015-08-27 13:11:26
【问题描述】:
我正在尝试使用 Hangfire 在后台运行一个循环作业,该作业从另一个网站轮询数据,问题是如果前一个作业仍在运行,我不希望循环作业运行。
我已通读文档,但似乎找不到答案。有没有办法让重复作业每 10 分钟运行一次,但如果上一个任务尚未完成则跳过?
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
// Hangfire
GlobalConfiguration.Configuration
.UseSqlServerStorage("DatabaseContext");
app.UseHangfireDashboard();
app.UseHangfireServer();
RecurringJob.AddOrUpdate("site-parser", () => SiteParserService.RunAll(), Cron.Minutely, TimeZoneInfo.Utc);
ConfigureAuth(app);
}
【问题讨论】:
-
这里有一个建议:只需将作业作为单个实例进行排队。然后,如果作业成功完成,您将执行作业的最后一步。作业的最后一步将在 10 分钟后将作业排入队列以再次执行。这不会为您提供所需的功能吗?
-
你的意思是同一个循环任务的最后一次执行吗?
标签: c# asp.net-mvc hangfire