【发布时间】:2014-03-03 21:29:23
【问题描述】:
我有一个设置为每分钟执行一个进程的 Quartz 触发器。
由于 concurrent 设置为 false,如果该过程花费的时间超过一分钟,则会阻止未来的触发器。但是,这是否意味着尝试运行的触发器现在“排队”等待执行?
例如,如果流程需要 10 分钟来执行,是否会有 10 个触发器坐在那里等待执行。我正在尝试防止在服务器上堆积。
【问题讨论】:
标签: java quartz-scheduler
我有一个设置为每分钟执行一个进程的 Quartz 触发器。
由于 concurrent 设置为 false,如果该过程花费的时间超过一分钟,则会阻止未来的触发器。但是,这是否意味着尝试运行的触发器现在“排队”等待执行?
例如,如果流程需要 10 分钟来执行,是否会有 10 个触发器坐在那里等待执行。我正在尝试防止在服务器上堆积。
【问题讨论】:
标签: java quartz-scheduler
没有。如果 concurrency 设置为 false(带有注释 @DisallowConcurrentExecution),如果实际仍在运行,则不会启动其他作业。
请参阅文档中的Job State and Concurrency。
【讨论】:
接受的答案不正确。 我刚刚用石英 2.2.3 进行了测试,这些工作确实被搁置了。 这意味着如果处理工作的时间优于工作之间的时间,您将堆积工作。
@1ac0 提供的文档没有提及任何内容,除了作业不会“立即”运行。
【讨论】: