5

是否可以在 Quartz-Scheduler 中定义关于作业的执行约束?

事实上,我有两个实现接口 Job 的类:JobA 和 JobB。

JobA 将每分钟安排一次。JobB 将每小时安排一次。

我不希望 JobA 和 JobB 同时运行。

注意: JobA 和 JobB 不做同样的事情。

感谢您的回答。

4

1 回答 1

4

没有直接的支持。如果它是同一个作业,您可以将其定义为有状态的 - 此类作业不能同时运行定义。

否则,您可以将 Quartz 工作线程的数量限制为 1,此外,您可以定义线程优先级以选择首先运行的作业。不幸的是,当涉及更多工作时,此解决方案将无法扩展。

最后,您可以在不涉及 Quartz 的情况下手动实现。我猜您不希望同时访问某些操作或某些资源。考虑锁定该方法/资源,以便两个作业同时运行,但一个阻塞并等待另一个完成。

于 2012-05-19T16:07:58.253 回答