整合定时器框架quartz以及使用JDBCJobStore持久化到数据库

1.首先引入jar包:http://www.quartz-scheduler.org/downloads/html

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
  </dependency>
  <dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
  </dependency>

2.在官网随便找一个example运行起来,mysql

http://www.quartz-scheduler.org/documentation/quartz-2.2.x/examples/sql

本文测试用的是Example 3 - Cron Triggers ;由于这个知足项目需求数据库

3. 使用JDBCJobStore:测试

上面默认的是使用RAMJobStore,任务信息存储在内存中,若是重启会丢失信息;spa

4. http://www.quartz-scheduler.org/downloads/code

下载下来,进入quartz-2.2.3-distribution\quartz-2.2.3\docs\dbTables目录找到对应的sql建表语句htm

在数据库执行;内存

5. 在项目claspath下新建quartz.properties文件:加入以下:get

org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.dataSource = myDS

org.quartz.dataSource.myDS.driver =com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL =jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=utf8
org.quartz.dataSource.myDS.user =root
org.quartz.dataSource.myDS.password =root
org.quartz.dataSource.myDS.maxConnections =5
6. 而后从新运行2中的example,成功,这个时候就会发如今数据库中已经有了job的信息,以下:

相关文章
相关标签/搜索