Quartz定时任务(附demo)(一)
来源:互联网 发布:东莞虎门淘宝摄影 编辑:程序博客网 时间:2024/05/18 02:44
Quartz定时任务(附demo)(一)
源码下载地址:https://gitee.com/seek412/quartz01.git
1. 什么是Quartz
Quartz是一个开源的作业调度框架,可以让计划的程序任务一个预定义的日期和时间运行
2. 创建普通Quartz定时任务
首先引入jar包
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>quartz</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>quartz</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency> </dependencies> <build> <finalName>tiny</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build></project>
创建定时任务A
package com.demo.schedule;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * 定时任务A * @author Administrator * @date 2017-11-23 下午 15:24 */public class JobA implements Job{ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("执行定时任务A..."); }}
创建定时任务B
package com.demo.schedule;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * 执行定时任务B * @author Administrator * @date 2017-11-23 下午 15:28 */public class JobB implements Job{ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("执行定时任务B..."); }}
创建测试类
package com.demo.schedule;import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;/** * @author Administrator * @date 2017-11-23 下午 15:29 */public class TestJob { public static void main(String[] args) throws SchedulerException { //获取工厂 SchedulerFactory schedulerFactory = new StdSchedulerFactory(); //调度器 Scheduler scheduler = schedulerFactory.getScheduler(); //定时任务A JobKey jobKeyA = new JobKey("jobA","groupA"); JobDetail jobDetailA = JobBuilder.newJob(JobA.class) .withIdentity(jobKeyA) .build(); //定时任务B JobKey jobKeyB = new JobKey("jobB","groupB"); JobDetail jobDetailB = JobBuilder.newJob(JobB.class) .withIdentity(jobKeyB) .build(); //定义触发的条件 //每个5秒触发一次 Trigger triggerA = TriggerBuilder .newTrigger() .withIdentity("dummyTriggerNameA","groupA") .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); //每个1秒触发一次 Trigger triggerB = TriggerBuilder .newTrigger() .withIdentity("dummyTriggerNameB","groupB") .withSchedule(CronScheduleBuilder.cronSchedule("0/1 * * * * ?")) .build(); //4. 启动定时任务 scheduler.start(); scheduler.scheduleJob(jobDetailA,triggerA); scheduler.scheduleJob(jobDetailB,triggerB); }}
运行测试类中main方法,控制台输入如下结果:
cron时间表达式
cron的表达式由7个节点代表,如下:
- Seconds
- Minutes
- Hours
- Day-of-Month
- Month
- Day-of-Week
- Year (可选字段)
常见的cron表达式
每隔5秒执行一次:/5 * * * ?
每隔1分钟执行一次:0 /1 * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
cron表达式符号说明
“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
阅读全文
0 0
- Quartz定时任务(附demo)(一)
- spring整合quartz定时任务(附demo)(二)
- Spring 整合 Quartz 实现动态定时任务(附demo)
- quartz定时任务动态配置详细教程(附demo)(三)
- Quartz实现定时任务(一)
- 任务调度Quartz初探Demo(一)
- quartz(定时任务)
- 【Quartz】定时任务(一)——Quartz.NET使用
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- spring quartz 定时任务 demo
- 定时任务,quartz的demo
- 学习定时任务(Quartz)
- Quartz定时任务(Spring)
- Quartz(一)在Spring中设置动态定时任务
- Quartz+Spring 分布式定时任务调度(一)- 环境搭建
- leetcode 53. Maximum Subarray
- Java与CSP数据兼容之三:Java兼容CSP的DES/3DES密钥数据和密文
- response重定向的网址中有中文乱码的解决办法
- linux regular expression
- 【JQuery学习笔记三】JQuery学习总结
- Quartz定时任务(附demo)(一)
- git checkout
- NOIP 2017 小凯的疑惑 (数学)
- 产品的一点思考
- 文件
- codevs 1098 均分纸牌
- JAVA任务标记
- 属性动画 组合跳转界面
- 统计学习方法——第四章朴素贝叶斯