【问题标题】: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可以同时执行吗?

【问题讨论】:

    标签: c# quartz.net job-scheduling


    【解决方案1】:

    作业实例是具有唯一键的作业。因此,拥有type AddItemsJob 的工作可以有两个实例,其键为 AddItemsJob.Admin 和 AddItemsJobs.Legacy。 并发保护来自每个作业键 - 如果使用重叠触发器定义上述两个作业,它们可以同时运行。 即使有多个触发器具有与其关联的重叠计划,在单个键后面定义单个作业也不会同时运行。

    【讨论】:

    • 谢谢马尔科!你的文章很有道理。
    猜你喜欢
    • 2017-08-07
    • 2017-07-20
    • 2014-09-23
    • 2014-07-25
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多