Quartz入门实例
来源:互联网 发布:稳定的网络怎么 编辑:程序博客网 时间:2024/06/04 17:44
1.添加依赖
<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>org.opensymphony.quartz</groupId> <artifactId>quartz-all</artifactId> <version>1.6.1</version> </dependency>
2.定义Job
具体执行的任务类需要实现Job接口,并在其中的execute方法写需要定时执行的方法
public class MyJob implements Job{Logger logger = LoggerFactory.getLogger(MyJob.class);public void execute(JobExecutionContext arg0) throws JobExecutionException {logger.info("{} task is start", new Date());}}
3.使用SimpleTrigger作为触发器
触发器就是用来定义任务何时执行、执行间隔、执行次数等信息的类,每个job都对应一个或者多个trigger
@Testpublic void test() throws SchedulerException, InterruptedException {JobDetail jobDetail = new JobDetail("firstJob", "myGroup", MyJob.class);SimpleTrigger trigger = new SimpleTrigger("firstJob", "myGroup");trigger.setStartTime(new Date());trigger.setRepeatInterval(2000);trigger.setRepeatCount(1);SchedulerFactory schedulerFactory = new StdSchedulerFactory();Scheduler scheduler = schedulerFactory.getScheduler();scheduler.scheduleJob(jobDetail, trigger);scheduler.start();Thread.sleep(10*1000l);}结果为:
[DefaultQuartzScheduler_Worker-1] INFO com.mycompany.quartz.MyJob - Sun Jun 07 15:13:57 CST 2015 task is start
[DefaultQuartzScheduler_Worker-1] INFO com.mycompany.quartz.MyJob - Sun Jun 07 15:13:59 CST 2015 task is start
注意:其中的repeatCount是重复次数,如果只执行一次就设置为0
3.使用CronTrigger作为触发器
@Testpublic void testCron() throws SchedulerException, InterruptedException, ParseException {JobDetail jobDetail = new JobDetail("firstJob", "myGroup", MyJob.class);CronTrigger trigger = new CronTrigger("firstJob", "myGroup");trigger.setCronExpression("0/5 * * * * ? ");SchedulerFactory schedulerFactory = new StdSchedulerFactory();Scheduler scheduler = schedulerFactory.getScheduler();scheduler.scheduleJob(jobDetail, trigger);scheduler.start();Thread.sleep(10*1000l);}cron表达式:
(1)*:*表示的就是所有,也就是“每”。如用在分钟字段表示每分钟
(2)?:就是不确定,一般用在日期和星期
(3)-:表示范围,如用在小时10-12,表示10点、11点、12点
(4),:表示枚举,也就是说把所有可能的值列出来
(5)/:x/y表示从x开始,每y执行一次。如0/15用在秒,表示0,15,30,45秒执行;3/15表示3,18,33,48.....执行
4.总结
所有的Quartz程序偶由3部分组成
(1)Job
具体执行的任务需要实现Job接口,具体的实现类是JobDetail
(2)Trigger
和Job对应,指定Job的执行时间和间隔、次数等信息
(3)Schedule
调度用的类,根据trigger来执行相应的job
- quartz入门实例
- Quartz---入门级实例
- quartz入门实例
- quartz入门实例
- Quartz入门实例
- 【Quartz】Quartz概述及入门实例
- 【Quartz】Quartz概述及入门实例
- 【转】【Quartz】Quartz概述及入门实例
- Quartz入门实例10-使用Quartz默认的线程池
- Quartz入门实例11-Quartz的远程方法调用
- Quartz入门实例Spring对Quartz的支持示例
- Quartz入门实例1-Hello job
- Quartz入门实例6-处理job异常
- Quartz入门实例9-实现Trigger监听器
- CronTrigger表达式和Quartz使用实例入门
- quartz入门(二)SimpleTrigger简单实例
- Quartz.NET 入门,带C#实例
- Quartz实例
- UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
- hdu 1003
- Foundation框架内容
- 统计学知识
- Theano3.4-练习之多层感知机
- Quartz入门实例
- STL源码分析之hashtable
- IoC容器Autofac(1) -- 什么是IoC以及理解为什么要使用Ioc
- php+MySQL图书管理系统(二)
- AngularJS 作用域Scope的继承
- CSDN-Markdown语法集锦
- 阶段性总结
- LeetCode——Longest Palindromic Substring
- vmstat iostat 分析