8

我想在我的应用程序中使用 Quartz Scheduler 框架。我遇到了两种类型的 JobStore:

1) RAM 作业存储

2) JDBC 作业存储。

我想知道在哪种情况下我必须使用哪个工作商店。以及它们之间的优缺点是什么。

对此的任何想法都对我很有帮助,我很感激。

4

2 回答 2

8

JDBC 作业存储将有关触发的触发器和作业的信息保存在数据库中,因此:

  • 如果应用程序在触发器被触发时关闭,它不会丢失触发(这取决于选择的失火指令)

  • 您可以集群您的调度程序,其中每个节点使用相同的数据库

  • JDBC 作业存储相当慢

RAM 作业存储仅适用于丢失触发无关紧要的非集群应用程序。它也快得多。如果你想使用带有 RAM 作业存储的 Quartz,很可能你根本不需要 Quartz。Spring 和 EJB 都提供了运行基于时间和 CRON 的周期性作业的机制。

于 2012-11-29T19:47:28.703 回答
3

RAM 作业存储非常快,但非常不稳定 - 作业无法在服务器重新启动后继续存在。

JDBC 作业存储有点慢,但由于作业位于持久存储(数据库)中,因此它们将在重新启动后继续存在。

因此,如果您只有短暂的作业计划,并且在服务器重新启动或重新部署应用程序时丢失它们是可以的,那么您可以使用 RAM 作业存储。

如果您需要确保您的作业在关闭/重新启动后仍然存在,那么您应该使用 JDBC 作业存储。

于 2012-11-29T19:48:48.260 回答