quartz使用cron表达式的实例
2013-12-19 15:32
204 查看
转载注明原文地址:http://thetopofqingshan.iteye.com/blog/1554390
前提信息:quartz版本信息: 2.1.5
假设读者知道:cron表达式
附件:quartz.jar及实例代码
实例代码
job
Java代码
package com.qingshan.job;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
/**
* 主要实现打印当前时间的job
* @author qingshan
* @date 2012-06-07
*
*/
public class JobDemo implements Job {
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
JobKey jobKey = context.getJobDetail().getKey();//job标识
System.out.println("组:"+jobKey.getGroup()+"--->队"+jobKey.getName()+"\t===>当前时间:"+ String.format("%tF %1$tT",new Date()));
}
}
运行:
Java代码
package com.qingshan.job;
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SchedulerMetaData;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
* 用于配置/运行/关闭程序调度器
* 注:当前类使用的程序调度器是CronTrigger类型的,支持cron表达式
* @author qingshan
* @date 2012-06-07
*/
public class RunJob {
public static void main(String[] args) throws SchedulerException {
// 创建工厂
SchedulerFactory factory = new StdSchedulerFactory();
// 创建程序调度器实例
Scheduler scheduler = factory.getScheduler();
// 创建一个job
JobDetail job = JobBuilder.newJob(JobDemo.class)
.withIdentity("job", "group-job").build();
// 创建触发器:"* * * * * ?"==>每秒都很执行一次
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger", "group-trigger")
.withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
.build();
// 执行的日期时间
Date date = scheduler.scheduleJob(job, trigger);
System.out.println(job.getKey() + " 在: "
+ String.format("%tF %1$tT", date) + "已经开启 cron表达式: "
+ trigger.getCronExpression());
// 开启所有已经配置job
scheduler.start();
// 3秒后关闭当前程序调度器
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭程序调度器
scheduler.shutdown(true);
// 统计执行的job个数
SchedulerMetaData metaData = scheduler.getMetaData();
System.out.println("已经执行 " + metaData.getNumberOfJobsExecuted()+ " 个job");
}
}
job.zip (524.7 KB)
下载次数: 51
相关文章推荐
- php中heredoc的使用方法
- PRIMASK与 FAULTMASK,以及CPSID/CPSIE
- Oracle常用函数 汇总
- 观察者模式
- 蜗牛—cocos2dx之2.2以上版本新建项目
- NYOJ 352 数乌龟
- 计算机视觉、机器学习相关领域论文和源代码大集合(持续更新)
- EasyUI 常规用法
- edittext默认没有焦点
- android程序的完美退出
- 安卓手机如何判断蓝牙耳机链接状态
- 第十七周 三个数排序
- OpenStack Grizzly实例重启之后cinder-volume服务无法启动的解决办法
- Object-C 学习笔记(二十九)--- 归档(2)
- 程序人生的四个象限和两条主线
- MyEclipse自定义Java文件语法颜色。 java Syntax Coloring
- Android的一些设备信息
- 一直以来伴随我的一些学习习惯(四):知识结构
- 【数学】【AOJ-194】猴子分桃
- 年中总结