一个简单的Quartz实现
来源:互联网 发布:淘宝q币货源 编辑:程序博客网 时间:2024/06/13 23:49
概念:
Job——表示一个工作,要执行的具体内容。
接口中只有一个方法: void execute(JobExecutionContext context) throws JobExecutionException;
JobExecutionContext 是包含各种永远任务调度环境的信息(如源码截图):
JobDetail——表示一个具体的可执行的调度程序,Job是这个可执行调度程序所要执行的内容。另外JobDetail还包含了这个任务调度的方案和策略。
Trigger——代表一个调度参数配置。例如什么时候调度等。
Scheduler——代表一个任务调度器,一个任务调度器可以注册多个JobDetail 和 Trigger 。当JobDetail和Trigger组合就可以被Scheduler容器调度了。
实现任务调度,需要实现Job
public class HelloJob extends LoggerUtils implements Job {
public HelloJob() {
}
/*
* (non-Javadoc)
*
* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
*/
public void execute(JobExecutionContext context)
throws JobExecutionException {
//这里使用了slf4g日志包,它支持参数化日志,不错的日志接口。
this.logger.info("第一个quartz {} job 执行时间为{}", "job excute ", new Date());
}
public void run() throws SchedulerException, InterruptedException {
//创建一个任务调度器
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
// quartz 中的时间帮助静态类
Date runTime=new Date();
//Date runTime = DateBuilder.evenMinuteDate(new Date());
JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1",
"group1").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1",
"group1").startAt(runTime).build();
//设置任务调度触发一个job的执行时间
sched.scheduleJob(job, trigger);
logger.info(job.getKey() + "will run at :" + runTime);
//启动任务调度
sched.start();
Thread.sleep(10L * 1000L);
//停止调度
sched.shutdown(true);
}
public static void main(String[] args) throws SchedulerException,
InterruptedException {
HelloJob helloJob = new HelloJob();
helloJob.run();
}
}
创建一个简单quartz的步骤:
- 创建一个scheduler(任务调度器-容器)——Scheduler 对象
- 创建一个工作明细JobDetail (设置一个工作明细 job)
- 创建一个触发器Trigger (设定何时触发一个job)
- 将JobDetail 和 Trigger 加入任务调度器中
- 启动任务调度器scheduler.start();
- 关闭任务调度器scheduler.shutdown();
使用到的jar包有:
1 0
- 一个简单的Quartz实现
- quartz的简单实现
- 简单的Quartz实现
- 一个最简单的 Quartz 列子
- Quartz SimpleThreadPool的源码,一个简单的线程池的实现原理
- 任务调度quartz(二)一个简单的调度平台的实现
- 一个最简单的定时任务Quartz的例子
- 一个最简单的定时任务Quartz的例子
- 一个最简单的定时任务Quartz的例子
- 企业级任务调度框架Quartz 三 一个简单的Quartz 例子
- 企业级任务调度框架Quartz 三 一个简单的Quartz 例子
- quartz 的简单应用
- quartz的简单调用
- Quartz的简单使用
- Quartz的简单实例
- Quartz的简单使用
- Quartz的简单实例
- 简单实现Spring Quartz定时器
- apache-tomcat-7.0.47 部署 solr-4.7.1 Error filterStart 问题
- avcodec_decode_video2()解码视频后丢帧的问题解决
- 今天你回归了么?
- 玩转Opencv源代码:生成Opencv工程解决方案与Opencv源码编译
- android 二维码扫描精简demo
- 一个简单的Quartz实现
- 机器学习笔记-决策树生成原理
- LAMP环境搭建过程
- jqueryMobile+backbone
- 文件操作《1》文件的读写
- C++编程->goto实现循环
- 状元女
- 【转】给技术人上的管理课:激励与授权
- Android Call requires API level 11 (current min is 8)的解决方案