我有一个具有以下定义的 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/