Quartz.net 中的“DisallowConcurrentExecution”到底是啥意思
Posted
技术标签:
【中文标题】Quartz.net 中的“DisallowConcurrentExecution”到底是啥意思【英文标题】:What is exactly mean by 'DisallowConcurrentExecution' in Quartz.netQuartz.net 中的“DisallowConcurrentExecution”到底是什么意思 【发布时间】:2022-01-21 21:50:18 【问题描述】:我有一个具有以下定义的 Quartz.net 作业。
[PersistJobDataAfterExecution]
[DisallowConcurrentExecution]
public class AdItemsJob : IJob, IInterruptableJob
public void Execute(IJobExecutionContext context)
// Job execution logic,
因为我已经用 DisallowConcurrentExecution
属性修饰了 Job。
我对这个属性的了解是,我们不能同时运行同一个作业的多个实例。这里的多个实例是什么意思。?AddItemsJob
的两个不同key的job叫同一个实例还是不同实例?
两个不同key的job可以同时执行吗?
【问题讨论】:
【参考方案1】:作业实例是具有唯一键的作业。因此,拥有type AddItemsJob 的工作可以有两个实例,其键为 AddItemsJob.Admin 和 AddItemsJobs.Legacy。 并发保护来自每个作业键 - 如果使用重叠触发器定义上述两个作业,它们可以同时运行。 即使有多个触发器具有与其关联的重叠计划,在单个键后面定义单个作业也不会同时运行。
【讨论】:
谢谢马尔科!你的文章很有道理。以上是关于Quartz.net 中的“DisallowConcurrentExecution”到底是啥意思的主要内容,如果未能解决你的问题,请参考以下文章