【发布时间】:2017-09-28 07:40:07
【问题描述】:
我有一个很简单的问题,但我找不到答案。
如果我按需安排LongRunningAndHeavyJob 类型的作业(StartNow()) 我不知道该作业将运行多长时间,但它可能会很长(从 10 分钟到 60 多分钟)并且非常占用 CPU。因为最终用户可以按需启动此作业,所以我想确保在某个时间只有该作业的一个实例正在运行。
例如:
- 约翰在 14:00:00 点击按钮时间表
- Quartz.net 服务器将运行此作业
- Jane 在 14:05:00 单击了按钮计划,但 John 的工作仍在运行中
我如何确保 Jane 的作业不会与 John 的作业同时运行,并且会在 John 的作业完成后运行。
属性DisallowConcurrentExecution 仅在您有一个计划的作业时使用,我认为该作业带有重复的触发器,并且该作业需要具有我没有的相同键。
一些额外的信息: John 的 Job 与 Jane 的 Job 具有不同的 JobData
提前致谢
【问题讨论】:
-
你是对的
DisallowConcurrentExecution在你的情况下没用。你可以看看here,这和你的问题类似,我描述了如何解决这个问题。 -
@Rabban 感谢您向我指出这个方向,但这并不是我想要的。我现在以不同的方式修复了它,我很快就会发布答案
标签: c# quartz-scheduler quartz.net