Quartz正在轰炸Oracle的归档日志
我正在使用 Quartz 和 JDBC Job Store 来执行调度作业。大多数作业每秒都在运行。
打开Oracle数据库的归档日志后,我注意到Quartz在每次火灾后都会更新相关表,包括:
- 插入QRTZ_FIRED_TRIGGERS
- ,更新所有字段的QRTZ_TRIGGERS(尽管我认为最相关的字段是TRIGGER_STATE,START_TIME等),
- 从QRTZ_FIRED_TRIGGERS中删除
- 并且,对 QRTZ_CRON_TRIGGERS 的不受支持的操作(我不知道那是什么
)的作业每秒运行一次,然后 Quartz 会轰炸归档日志。它每天消耗 6 GB 磁盘空间!
有没有办法设置 Quartz 的行为,而不是在每次触发后更新/删除表?
I am using Quartz to do schedule jobs, with JDBC Job Store. Most of the jobs are running every seconds.
Having turned on the archive log of Oracle database, I noticed Quartz is updating the related tables after each fire, including:
- insert into QRTZ_FIRED_TRIGGERS
- update QRTZ_TRIGGERS for all fields (although I think the most relevant field is TRIGGER_STATE, START_TIME, etc)
- delete from QRTZ_FIRED_TRIGGERS
- And, an unsupported action towards QRTZ_CRON_TRIGGERS (I don't know what's that)
Since most of the jobs are running every seconds, Quartz is then bombarding the archive log. it consumes 6 GB of disk space every day!
Is there a way to set the behavior of Quartz, not to update/delete tables after each fire?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以将 QRTZ_TRIGGERS 和 QRTZ_FIRED_TRIGGERS 设置为 NOLOGGING。
另一个解决方案是不要每隔几秒运行一次作业。也许持久的、不消亡的工作对你来说更好。
You can set QRTZ_TRIGGERS and QRTZ_FIRED_TRIGGERS to NOLOGGING.
Another solution would be to not run jobs every few seconds. Maybe persistent non-dying jobs are better in your case.