1.Quartz存储Job的方式分为三种:
- 常用的RAMJobStore,RAMJobStore将Job相关信息保存在内存中;在程序启动时,从xml中装载Job信息或者通过代码动态添加任务到内存中,应用重新启动后,定时任务信息将会丢失
- 另外两种为JobStoreTX和JobStoreCMT,使用这两种JobStore,quartz就会自动将Job的信息保存在数据库中,如果应用程序挂了或者重启,quartz会通过保存在数据库中的Job信息恢复定时任务。
2.RAMJobStore方式配置
- 首先需要引入quartz所依赖的jar包
<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>
- 创建quartz_jobs.xml文件用于配置调度器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
<bean id="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="autoStartup">
<value>true</value>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop>
<prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop>
<prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop>
</props>
</property>
</bean>
</beans>
- 引入quartz_jobs.xml
- 将quartz_jobs.xml添加在web.xml中
<param-value>
classpath*:/spring-context*.xml,
classpath*:/quartz_jobs.xml
</param-value>
- 这样我们就可以使用quartz了
编码部分以后将会谈到,可以参考下面的链接:
http://itindex.net/detail/53315-spring-quartz-%E7%AE%A1%E7%90%86
http://ifeve.com/quartz-5-simpletrigger/