Quartz - Java 任务调度
来源:互联网 发布:风电齿轮箱 知乎 编辑:程序博客网 时间:2024/04/29 23:32
1.背景
在企业应用中,经常有一些定时任务需要执行:
1)生成月报,季报和年报,这时候可以使用数据库的作业运行存储过程来实现;
2)定期查询哪些待审核单据即将过期,并给待审核人发送提醒邮件,可以使用powershell脚本来做一个发送邮件的功能,在数据库的作业中来调用。
...
诸如此类的很多需求,通常会做一个windows service 运行在应用服务器上,定时执行去执行一些任务。这时候如果任务比较多,还需要个性化定制触发器,业务逻辑可能就比较复杂了,协调各个任务之间的关系就不那么简单了。为了解决这个问题,Quartz就诞生了,这是一个企业级的任务调度框架。下面就看看Quartz的一些情况。
2.概要
1)官网:http://www.quartz-scheduler.org/
从下载到文档到Demo,一应俱全,官网是最好的学习资源(英文不太好的同学请自行脑补...)
2.Demo
1)新建java工程
导入如下jar包...
log4j.xml可以直接用example里面的配置
2)JobTest.java
package com.wicresoft.demo;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class JobTest implements Job{//Instances of Job must have a public no-argument constructor public JobTest(){ } public void execute(JobExecutionContext arg0) throws JobExecutionException { //print the job instance,all instance are not the same System.out.println("My task is to call current Job:" + this + " refresh screen!!!"); } }
3)QuartzTest.java
package com.wicresoft.demo;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SimpleScheduleBuilder;import org.quartz.Trigger;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;//import org.quartz.JobBuilder.*;//import org.quartz.TriggerBuilder.*;//import org.quartz.Trigger;//import org.quartz.SimpleScheduleBuilder.*;public class QuartzTest {public static void main(String[] args) {try {// Grab the Scheduler instance from the FactoryScheduler scheduler = StdSchedulerFactory.getDefaultScheduler();// define the job and tie it to our HelloJob classJobDetail job = JobBuilder.newJob(JobTest.class).withIdentity("job1", "group1").build();// Trigger the job to run now, and then repeat every 2 secondsTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();// Tell quartz to schedule the job using our triggerscheduler.scheduleJob(job, trigger);// and start it offscheduler.start();// mail thread sleep 2 seconds//System.out.println(Thread.currentThread().getName());Thread.sleep(30 * 1000);scheduler.shutdown();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SchedulerException se) {se.printStackTrace();}}}
PS:
1.Quartz 已经有了.NET版本,使用起来基本与java一致,这里推荐lee576的一篇关于.net Quartz的介绍:
http://blog.csdn.net/lee576/article/details/46048927
0 0
- Quartz - Java 任务调度
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- 使用Java Timer以及quartz调度任务
- quartz一分钟教程 java任务调度
- Java任务调度框架Quartz教程实例
- Java任务调度类库Quartz初步
- Java任务调度类库Quartz初步
- Java任务调度框架Quartz教程实例
- java使用quartz执行任务调度
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz(1)
- Java任务调度之Quartz快速入门
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- panel
- Mina学习笔记 TcpClient
- 指数分布与泊松过程(三)
- 解决sdk更新问题 dl-ssl.google.com
- 黑马程序员-Java之构造代码块、构造函数、静态代码块
- Quartz - Java 任务调度
- 指针形参实参传递时需要注意
- PE文件结构详解<二>
- 重装系统的连锁反应
- 用起泡法对输入的十个字符由小到大顺序排列
- RHEL7 (124)控制服务和后台进程
- 一起学习CC3200之局域网内搭建外网能访问的服务器--花生壳
- JSTL double保留小数点后两位
- 关于malloc函数