我有一个定期运行的调度程序任务(每分钟一次)。我使用以下代码段运行此任务:
Scheduler = await StdSchedulerFactory.GetDefaultScheduler().ConfigureAwait(false);
await Scheduler.Start().ConfigureAwait(false);
JobDetail = JobBuilder.Create<SchedulerJob>().Build();
Trigger = TriggerBuilder.Create().StartNow().WithPriority(1).WithCronSchedule(cronExpression).Build();
await Scheduler.ScheduleJob(JobDetail, Trigger).ConfigureAwait(false);
我现在想要/需要做的是安排另一个不并发的单独任务。这意味着第二个新任务具有优先权,当两个任务同时被调用并且第一个任务等待或不执行时,它始终处于运行状态。
两个类(SchedulerJob和新的类)都标记为[DisallowConcurrentExecution],但它们仍然同时运行。
我还尝试了JobDataMap的两种选择:
Quartz是否有一种内置方式,使两个不同的JobDetails / Job类是非并发的?我想避免必须手动实施非并发检查。