博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Quartz在JBOSS AS7中配置与使用
阅读量:6810 次
发布时间:2019-06-26

本文共 2898 字,大约阅读时间需要 9 分钟。

  hot3.png

因项目需要,需要在Web App中定期执行某Java程序。在Google上搜索发现了Quartz。

  1. 创建一个Job

    第一步需要创建一个Job实现org.quartz.Job接口的execute方法。每次scheduler到点调用的就是这个程序。

package com.enix.dataxfer.scheduler;import org.quartz.DisallowConcurrentExecution;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import com.enix.dataxfer.jython.Transfer;@DisallowConcurrentExecutionpublic class TransferJob implements Job{		@Override	public void execute(JobExecutionContext context) throws JobExecutionException {				System.out.println("Transfer job is started...");		Transfer.batch();		System.out.println("Transfer job is ended...");	}}

2. 创建配置文件quartz.properties

   配置文件quartz.properties需要放在WEB-INF/classes下,此处需要注意的是,

   org.quartz.plugin.joinInitializer.fileName 指定步骤一创建的job的cron trigger信息,也就是说该Job多久运行一次。  

   jobs.xml也需要放在WEB-INF/classes文件夹下。

org.quartz.scheduler.instanceName = MyScheduler org.quartz.threadPool.threadCount = 1 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin org.quartz.plugin.jobInitializer.fileNames = jobs.xml org.quartz.plugin.jobInitializer.failOnFileNotFound = true org.quartz.plugin.jobInitializer.scanInterval = 10 org.quartz.plugin.jobInitializer.wrapInUserTransaction = false

3. 创建jobs.xml定义步骤1创建的TransferJob

    此处定义了一个cron trigger,从0:00开始,每隔5分钟触发一次TransferJob。对应的语法,大家可以参看

TransferJob
DataBatchJobs
Trigger the data migration script
com.enix.dataxfer.scheduler.TransferJob
TransferTrigger
TransferJob
DataBatchJobs
0 0/5 0-23 * * ?

4. 添加Listener到web.xml

    最后一步,也就是要添加Quartz的listener到web.xml,这样JBOSS就会注册该listener,而定期执行任务。

    
org.quartz.ee.servlet.QuartzInitializerListener
  
     
jfinal
com.jfinal.core.JFinalFilter
configClass
com.enix.dataxfer.core.AppConfig
jfinal
/*

5. 部署程序,并查看运行日志

17:40:00,001 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is started...17:40:01,360 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is ended...17:45:00,002 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is started...17:45:01,367 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is ended...17:55:00,001 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is started...17:55:01,340 INFO  [stdout] (MyScheduler_Worker-1) Transfer job is ended...

转载于:https://my.oschina.net/enixyu/blog/200513

你可能感兴趣的文章
Redis主从配置
查看>>
时间格式大全
查看>>
面向对象三大特性
查看>>
Css样式
查看>>
LaTeX使用小结2
查看>>
js的this作用域
查看>>
POJ 2391 Ombrophobic Bovines【二分+最大流】
查看>>
Python与模块--01sys
查看>>
那些令人喷饭的代码注释:仅以此代码献给...it's realy ?
查看>>
华为手机连不上adb解决方法
查看>>
怎样让程序不断执行
查看>>
touch事件的分发和消费机制
查看>>
字节对齐 pragma
查看>>
spring mvc静态资源放行
查看>>
CSRF与XSS攻击的原理与防范
查看>>
如何创建图像
查看>>
android之自定义弹框
查看>>
表单元素与提示文字无法对齐的问题(input,checkbox文字对齐)
查看>>
docker
查看>>
Zookeeper C API 指南四(C API 概览)
查看>>