下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,
分别对这两种进行简单的说明
首先需要添加Quartz的Jar包 ,我使用的是quartz.2.2.3版本!
1:RAM方式
要测试RAMdemo的代码,请先删除demo中这个quartz.properties文件,或者重命名!否则会测试不成功!
(1):Job
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class DataConversionTask { /** 日志对象 */ private static final Logger LOG = LoggerFactory.getLogger(DataConversionTask.class); public void run() { if (LOG.isInfoEnabled()) { System.out.println("开始跑定时任务了---》》》"); LOG.info("数据转换任务线程开始执行"); } } }spring-servlet.xml配置文件添加
<!-- 使用MethodInvokingJobDetailFactoryBean,任务类可以不实现Job接口,通过targetMethod指定调用方法--> <bean id="taskJob" class="com.core.xyl.brance.wx.web.Job.DataConversionTask"/> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="group" value="job_work"/> <property name="name" value="job_work_name"/> <!--false表示等上一个任务执行完后再开启新的任务--> <property name="concurrent" value="false"/> <property name="targetObject"> <ref bean="taskJob"/> </property> <property name="targetMethod"> <value>run</value> </property> </bean> <!-- 调度触发器 --> <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="name" value="work_default_name"/> <property name="group" value="work_default"/> <property name="jobDetail"> <ref bean="jobDetail" /> </property> <property name="cronExpression"> <value>0 0/5 13 * * ?</value> </property> </bean> <!-- 调度工厂 --> <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="myTrigger"/> </list> </property> </bean>
运行结果:
信息: Starting ProtocolHandler ["ajp-bio-8009"]
三月 14, 2018 1:45:03 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 6821 ms
开始跑定时任务了---》》》
开始跑定时任务了---》》》
2.JDBC方式
使用jdbc方式,就要配置quartz.properties文件,并且在开始的时候在数据库中新增表!
我使用的数据库是mysql,数据库中表在quartz_demo里面有