是否可以在 Quartz-Scheduler 中定义作业的执行约束?
确实,我有两个实现接口(interface) Job 的类:JobA 和 JobB。
JobA 将每分钟安排一次。 JobB 将每小时安排一次。
我不希望 JobA 和 JobB 同时运行。
注意:JobA 和 JobB 做的事情不同。
感谢您的回答。
最佳答案
没有对此的直接支持。如果是同一个作业,您可以将其定义为有状态的 - 这样的作业不能同时运行。
否则你可以将 Quartz 工作线程的数量限制为 1,另外你可以定义线程优先级来选择哪个作业应该首先运行。不幸的是,当涉及更多作业时,此解决方案将无法扩展。
最后,您可以在不涉及 Quartz 的情况下手动实现它。我猜你不希望同时访问某些操作或某些资源。考虑锁定该方法/资源,以便两个作业同时运行,但一个会阻塞并等待另一个完成。
关于java - 限制两个作业不能在 Quartz-Scheduler 中同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655979/