我目前正在使用 JDBC 作业存储在负载平衡环境中设置 Quartz,我想知道每个人如何管理 quartz 作业存储数据库。
对我而言,Quartz (2.2.0) 将作为版本化应用程序的一部分进行部署,同时在一台服务器上可能存在多个版本。我使用符号 XXScheduler_v1 来确保多个调度程序协同工作。我的代码工作正常, quartz 表被适本地填充了触发器/作业/等。
但我注意到的一件事是,在取消部署应用程序时似乎没有发生数据库清理。我的意思是,即使调度程序不再处于事件状态,作业/调度程序数据似乎仍保留在 quartz 数据库中。
这不太理想,我可以想象使用我的模型,随着时间的推移,数据库会变得比它需要的更大。我是否错过了如何连接一些清理过程?还是 quartz 希望我们手动进行数据库清理?
干杯!
最佳答案
一旦我遇到这个问题,这就是我为纠正这个问题所做的。这肯定会起作用,但如果它不起作用,那么我们将备份表,因此您在尝试此操作时不会丢失任何东西。
a) QRTZ_CRON_TRIGGERS
b) QRTZ_SIMPLE_TRIGGERS
c) QRTZ_TRIGGERS
d) QRTZ_JOB_DETAILS
delete from QRTZ_CRON_TRIGGERS
delete from QRTZ_SIMPLE_TRIGGERS
delete from QRTZ_TRIGGERS
delete from QRTZ_JOB_DETAILS
这更像是在第一次安排所有任务的情况下启动您的应用程序。因此,您必须记住,任务的行为就像它们是新插入的一样。
注意:如果这不起作用,则应用您为表进行的备份并尝试更仔细地调试。到目前为止,我还没有看到这种方法失败。
关于quartz-scheduler - Quartz JDBC 作业存储 - 维护/清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694178/