Quartz.net中'DisallowConcurrentExecution'的确切含义是什么

Ish*_*iaq 9 c# job-scheduling quartz.net

我有一个Quartz.net Job,其定义如下.

    [PersistJobDataAfterExecution]
    [DisallowConcurrentExecution]
    public class AdItemsJob : IJob, IInterruptableJob
    {

        public void Execute(IJobExecutionContext context)
        { 
         // Job execution logic,

        }
   }
Run Code Online (Sandbox Code Playgroud)

因为我用DisallowConcurrentExecution属性装饰了Job .
我所知道的这个属性,我们不能同时运行同一个作业的多个实例.多个实例的含义是什么? 具有不同密钥
的两个作业是否AddItemsJob被称为相同实例或不同实例.
具有不同密钥的两个作业是否可以同时执行.

Mar*_*hma 17

作业实例是具有唯一键的作业.因此,具有AddItemsJob 类型的作业可以具有两个具有键AddItemsJob.Admin和AddiItemsJobs.Legacy的实例.并发保护来自每个作业密钥 - 如果使用重叠触发器定义上述两个作业,则它们可以同时运行.

即使有多个触发器具有与之关联的重叠调度,在单个密钥后面定义的单个作业也不会同时运行.