就像我在上一篇中说的,把调度器信息存储在内存中非常的快也易于配置。但当调度器进程一旦被终止,所有的 Job 和 Trigger 的状态就丢失了。所以我们就需要把调度器信息持久化到数据库,在服务器重启时就可以自动启动终止的任务。Quartz不可能没有考虑到这个问题,可以通过引入Jar包与配置实现,并支持多种数据库版本。
一、持久化到MongoDB
1、引入Jar依赖
好吧,我承认,这竟然是我做这个工作最费时的一步。我竟然没找到现成的Jar包?!这个还好,我是用Maven的嘛,我引入依赖就好了嘛,结果竟然在中央版本库中找不到这个依赖?!好吧……经过了中间省略无数尝试后,终于在git上找到了这个依赖的仓库,引入到pom.xml中:
<repositories>
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
引入依赖:
<dependency>
<groupId>com.novemberain</groupId>
<artifactId>quartz-mongodb</artifactId>
<version>2.0.0-rc2</version>
</dependency>
二、配置quartz.properties