如何限制quartz调度程序中特定类并发执行的作业实例的数量?

2024-02-26

我有一个实现 Job 的“Applier”类。 意味着“Applier”类是 Quartz Job 的实例之一。

我的要求是控制一次执行的“Applier”实例的数量。 意味着我想限制一次最多执行 5 个“Applier”实例。 如果“Applier”的第 6 个实例到来且 5 个实例已在执行,则必须等到“Applier”的实例之一完成。

Quartz Scheduler 中是否有等待/通知类型的机制。意味着如果 Job 的第 6 个实例尝试运行,并且 5 个实例已经在执行,则第 6 个实例必须等待并在 5 个实例执行中的任何一个完成后发出通知。

意味着我想为 Job 的特定实例实现一些 ThreadPool 类型机制。 我不希望像 Quartz Scheduler 级别的 ThreadPool 机制一样,因为 Quartz Scheduler 已经提供了它。


您可以限制并发运行的作业数量(线程池),也可以将给定的作业实例限制为仅一个并发实例。您不能将给定作业限制为仅给定数量的实例(1 除外)。做你想做的事情的唯一方法是只为给定的调度程序运行一种作业,然后将线程池限制为你想要在同一时间运行的作业数量

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制quartz调度程序中特定类并发执行的作业实例的数量? 的相关文章

随机推荐