Quartz的使用

来源:互联网 发布:mfc多线程编程实例 编辑:程序博客网 时间:2024/06/09 14:27

Quartz是一个完全由java编写的开源作业调度框架

下面重点介绍怎么使用:

1.首先配置quartz.properties文件,这个是quartz初始化配置文件具体配置如下:

org.quartz.scheduler.instanceName = Sched1org.quartz.scheduler.instanceId = 1org.quartz.scheduler.rmi.export = falseorg.quartz.scheduler.rmi.proxy = falseorg.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPoolorg.quartz.threadPool.threadCount = 5org.quartz.jobStore.class = org.quartz.simpl.RAMJobStoreorg.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPluginorg.quartz.plugin.jobInitializer.fileNames = quartz_job.xmlorg.quartz.plugin.jobInitializer.failOnFileNotFound = trueorg.quartz.plugin.jobInitializer.scanInterval = 3600org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
该文件应该 放在根路径下

2.在web.xml中配置quartz对应的servlet,具体如下:

<servlet><servlet-name>QuartzInitializer</servlet-name><servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class><init-param><param-name>shutdown-on-unload</param-name><param-value>true</param-value></init-param><init-param><param-name>config-file</param-name><param-value>quartz.properties</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

3.在根路径下添加quartz_job.xml文件,注册处理任务的类:

<?xml version="1.0" encoding="UTF-8"?><quartz><job><job-detail><name>huicoin</name><group>huicoin_group</group><description>xxx</description><job-class>com.huipay.quartz.InitHuiCoin</job-class></job-detail><trigger><cron><name>huicoin_corn</name><group>huicoin_group</group><job-name>huicoin_quartz</job-name><job-group>huicoin_group</job-group><cron-expression>0 0 3 * * ?</cron-expression></cron></trigger></job></quartz>  
4.实现Job接口,处理具体的任务逻辑:

public class Test implements Job {@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {try {HibernateSimpleDao.getCurrentSession().beginTransaction();        //逻辑处理部分HibernateSimpleDao.getCurrentSession().getTransaction().commit();} catch (RuntimeException e) {e.printStackTrace();if (HibernateSimpleDao.getCurrentSession().getTransaction().isActive()) {HibernateSimpleDao.getCurrentSession().getTransaction().rollback();}} finally {HibernateSimpleDao.getCurrentSession().close();}}}




0 0