Java任务调度框架Quartz
转自:http://blog.csdn.net/yuebinghaoyuan/article/details/9045471
public abstract interface Job
{
public abstract void execute(JobExecutionContext paramJobExecutionContext)
throws JobExecutionException;
}
- package com.test;
- import java.util.Date;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- /**
- * 需要执行的任务
- * @author lhy
- *
- */
- public class MyJob implements Job {
- @Override
- //把要执行的操作,写在execute方法中
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
- System.out.println("测试Quartz"+new Date());
- }
- }
使用SimpleTrigger触发器
- package com.test;
- import java.util.Date;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleTrigger;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class SchedulerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);
- // 定义调度触发规则,比如每1秒运行一次,共运行8次
- SimpleTrigger simpleTrigger=new SimpleTrigger("simpleTrigger","triggerGroup");
- // 马上启动
- simpleTrigger.setStartTime(new Date());
- // 间隔时间
- simpleTrigger.setRepeatInterval(1000);
- // 运行次数
- simpleTrigger.setRepeatCount(8);
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(jobDetail, simpleTrigger);
- // 启动调度
- scheduler.start();
- }catch(SchedulerException e){
- e.printStackTrace();
- }
- }
- }
若使用CornTrigger触发器:
- package com.test;
- import java.util.Date;
- import org.quartz.CronTrigger;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleTrigger;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class CronTriggerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);
- // 定义调度触发规则,每天上午10:15执行
- CronTrigger cornTrigger=new CronTrigger("cronTrigger","triggerGroup");
- // 执行规则表达式
- cornTrigger.setCronExpression("0 15 10 * * ? *");
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(jobDetail, cornTrigger);
- // 启动调度
- scheduler.start();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
对于2.0.2jar包如下:
- package com.test;
- import java.util.Date;
- import org.quartz.CronScheduleBuilder;
- import org.quartz.JobBuilder;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleScheduleBuilder;
- import org.quartz.Trigger;
- import org.quartz.TriggerBuilder;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class SchedulerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();
- // 定义调度触发规则
- // 使用simpleTrigger规则
- // Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
- // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))
- // .startNow().build();
- // 使用cornTrigger规则 每天10点42分
- Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
- .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *"))
- .startNow().build();
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(job, trigger);
- // 启动调度
- scheduler.start();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
上述demo下载:1.8版本demo下载
Java任务调度框架Quartz的更多相关文章
- Java任务调度框架Quartz入门
Quartz[kwɔːts]:石英,其框架和名字一样简单朴素又不失魅力,在Java程序界,Quartz大名鼎鼎,很多Java应用几乎都集成或构建了一个定时任务调度系统,Quartz是一个定时任务调度框 ...
- Java任务调度框架Quartz教程实例
介绍: Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. 核心概念 Quar ...
- Java任务调度框架Quartz教程
一.什么是quartz作业调度? Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. ...
- (转)Java任务调度框架Quartz入门教程指南(三)任务调度框架Quartz实例详解深入理解Scheduler,Job,Trigger,JobDetail
http://blog.csdn.net/zixiao217/article/details/53053598 首先给一个简明扼要的理解: Scheduler 调度程序-任务执行计划表,只有安排进执行 ...
- (转)Java任务调度框架Quartz入门教程指南(四)Quartz任务调度框架之触发器精讲SimpleTrigger和CronTrigger、最详细的Cron表达式范例
http://blog.csdn.net/zixiao217/article/details/53075009 Quartz的主要接口类是Schedule.Job.Trigger,而触发器Trigge ...
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...
- 通过源码分析Java开源任务调度框架Quartz的主要流程
通过源码分析Java开源任务调度框架Quartz的主要流程 从使用效果.调用链路跟踪.E-R图.循环调度逻辑几个方面分析Quartz. github项目地址: https://github.com/t ...
- 企业级任务调度框架Quartz(1) --企业应用中的任务调度介绍
由于目前的工作内容为建行CLPM批处理业务的设计工作,所以很好的理解批处理所用的任务调度框架Quartz势在必行:为了能够更好的去服务于工作,也 为了提升自己,所以我学习了Quartz Job Sch ...
- Java任务调度框架之分布式调度框架XXL-Job介绍
Java任务调度框架之分布式调度框架XXL-Job介绍及快速入门 调度器使用场景: Java开发中经常会使用到定时任务:比如每月1号凌晨生成上个月的账单.比如每天凌晨1点对上一天的数据进行对账操作 ...
随机推荐
- android之截屏(包括截取scrollview与listview的)
public class ScreenShot { // 获取指定Activity的截屏,保存到png文件 public static Bitmap takeScreenShot(Activity a ...
- 【BZOJ】【3503】【CQOI2014】和谐矩阵
高斯消元解Xor方程组 Orz ZYF o(︶︿︶)o 唉我的数学太烂了…… 错误思路:对每个格点进行标号,然后根据某5个异或和为0列方程组,高斯消元找自由元……(目测N^3会TLE) ZYF的正确思 ...
- 【BZOJ】【3675】【APIO2014】序列分割
DP+斜率优化 首先我们根据这个分割的过程可以发现:总得分等于k+1段两两的乘积的和(乘法分配律),也就是说与分割顺序是无关的. 再对乘积进行重分组(还是乘法分配律)我们可以转化为:$ans=\sum ...
- 《C和指针》整理一
1.C语言的凝视 在C语言中,假设须要凝视掉一段代码.且代码中可能会已经存在/**/凝视形式,那么能够使用: #if 0 statements #endif 这样的形式来凝视掉 ...
- HBase目录
1. HBase介绍及简易安装(转) 2. java操作Hbase实例 3. HBase入门基础教程之单机模式与伪分布式模式安装(转) 4. HBase教程 5. 用Java操纵HBase数据库(新建 ...
- Python的知识点 plt.plot()函数细节
1.plt.plot(x,y,format_string,**kwargs) 转自点击打开链接x轴数据,y轴数据,format_string控制曲线的格式字串 format_string 由颜色字符, ...
- 九度 题目1421:Abor
转载声明本文地址 http://blog.csdn.net/yangnanhai93/article/details/40563285 题目链接:http://ac.jobdu.com/problem ...
- myeclipse创建maven android项目
一.搭建环境 1.安装android maven插件,我在网上找了半天.没有找到这个插件,于是选择了在线安装.选择myeclipse 的 [help]->[install form catalo ...
- Inside GDALAllRegister之二: 自动加载驱动
代码 GetGDALDriverManager()->AutoLoadDrivers(); 包含了两部分: 首先获得GDALDriverManager的singleton对象的指针,这点之 ...
- Kettle资源库采用SQLserver数据库需要注意的点
Kettle开源ETL工具有着自己的元数据存储方式,可以分为两种 1:File 2:DB 文件存储我这里就不多说了,下面说一下在用SQLserver2008 R2作为资源库在创建的过程中遇到的问题 K ...