我有一个具有约50个重复工作的hangfire服务器.在此示例中,在IIS上设置Hangfire .在startup.cs中将重复的作业添加到hangfire中,如下所示:
RecurringJob.AddOrUpdate(job.desctiprion,
() => job.startJob(),
job.cron,
TimeZoneInfo.Local);
Run Code Online (Sandbox Code Playgroud)
我需要添加每分钟运行的新定期作业.但这项工作运行的时间很短.我的目标 - 提供同时只工作这个工作的一个范例.
有什么解决方案?据我所知需要像一个线程的队列,但队列不支持线程设置.
您可以使用DisableConcurrentExecution过滤器来防止并发执行.
[DisableConcurrentExecution(timeoutInSeconds: 60)]
public void SomeJob()
{
//method body
}
Run Code Online (Sandbox Code Playgroud)
此过滤器在方法性能的开头放置分布式锁,并在使用该
IServerFilter接口完成后将其释放 .类型和方法名称用作锁定资源.每个存储都使用自己的分布式锁实现.(在这里阅读更多)
| 归档时间: |
|
| 查看次数: |
2884 次 |
| 最近记录: |