c# - Quartz.net 中的 'DisallowConcurrentExecution' 到底是什么意思

标签 c# quartz.net job-scheduling

我有一个具有以下定义的 Quartz.net 作业。

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

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

        }
   }

因为我用 DisallowConcurrentExecution 属性装饰了 Job。
据我所知,我们不能同时运行同一作业的多个实例。这里的多实例是什么意思?
AddItemsJob两个不同key的job是调用相同的实例还是不同的实例?
具有不同 key 的两个作业可以同时执行吗?

最佳答案

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

关于c# - Quartz.net 中的 'DisallowConcurrentExecution' 到底是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23390698/

相关文章:

c# - 为什么 WPF 按钮并不总是触发其绑定(bind)的命令?

c# - 序列化 'this'

c# - 在遍历字典时删除

c# - Quartz.NET 远程处理 - 调度程序已经存在

c# - 我如何等待 Quartz.Net 父作业中的子作业完成

c# - 在 C# 中给定周数和年份计算一周的开始和结束日期(基于 ISO 规范)

c# - Quartz.net 作业调度

operating-system - 对称多处理 (SMP) 和多处理 (MP) 之间有什么区别?

python - 对于 'Run whether user is logged on or not' 选项,计划任务不会在 Windows 10 中运行 .py 文件

windows-7 - 计划任务中UAC阻止的exe名称,如update.exe