Quartz Scheduler维护和性能开销

问题描述 投票:0回答:1

我们目前正在评估要在我们的项目中使用的石英计划器。对于我们的用例,将来只需要触发一次触发器,就不必是可重复的或cron触发器。

所以在我的POC中,当业务事件发生时,我正在创建一个新的简单的一次性触发器。我可以看到在集群环境中(使用石英的JDBC存储),触发器在多个节点之间进行了平衡/分配。

从POC观察到了所需的行为,但是,从性能的角度来看,如果每次大规模运行时都创建一个新的一次触发器,将会有多昂贵。据我了解,瓶颈是触发器会导致数据库膨胀,数据库清理的可能解决方案是添加后台任务来清理旧触发器。

任何人都可以分享您的经验,使用我们的设计维护计划程序的痛点以及用于改进设计的任何意见

java performance quartz-scheduler maintainability
1个回答
0
投票

您可以安全地使用一次性触发器,并且在触发后它们会被Quartz自动删除。 Quartz会检查所有触发器,并确定这些触发器是否会在将来的某个时刻触发。如果没有,那么Quartz只会将它们从商店中删除,因为保留它们没有任何意义。

有些相似的原则适用于工作。如果一个作业没有关联的触发器,除非作业的持久性标记设置为true,否则Quartz会自动将其从存储中删除。

因此,在您的情况下,您可能希望注册一堆持久性作业,然后您的应用将根据需要为这些作业创建一次性触发器。作业将保留在存储中,触发器完成后将自动清除。

© www.soinside.com 2019 - 2024. All rights reserved.