【Cron表达式】

Quartz使用类似于Linux下的Cron表达式定义的时间规则,Cron表达式由6到7个空格分隔的时间字段组成。

[ 字符说明 ]

* :可以用在所有字段中,表示对应时间域内的每一个时刻。

:只能在日期、星期字段中使用。定义为“无意义的值”,相当于占位符。

:表达一个范围。在小时字段中中"10-12",表示为10点到12点。

:表示一个列表值。如在星期中使用 “MON , WED , FRI” 表示周一、周三、周五

/  :x/y表示一个等步长序列。x是起始值,y是增量步长值。如在分钟字段中使用“0/15”,表示在0、15、30、45分钟的时候。“5/20”则表示在5、25、45分钟的时候。*/y等同于0/y。

L :L只能在日期和星期中使用,表示“Last”。L在日期字段中,表示这个月份的最后一天;L在星期中,表示星期六(等同于7,这里默认一周的最后一天为周六)。在星期字段中,如果L前面还有一个数字X,表示“这个月的最后X天”,如6L表示该月的最后一个星期5。

W :W只能出现在星期字段里,是对前导日期的修饰,表示该日期最近的工作日。使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一 到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。

LW组合:在日期字段里可以使用LW,当月的最后一个工作日。

# :只能在星期中使用,表示当月的某个工作日。如6#3表示当月的第3个星期5。(6:星期5,3:第3个),4#5表示当月的第5个星期3,如果当月没有底5个星期三,则忽略不触发。

C :只能在日期和星期字段中使用,代表"Calendar",计划所有关联的日期,如果日期没有被关联,则相当于日历中的所有日期。5C表示在日期字段中表示5日以后的第1天,1C在星期字段的中相当于星期日后的第1天。

【Cron表达式的例子】

"0 0 12 * * ?"              每天中午12点触发 
"0 15 10 ? * *"            每天上午10:15触发 
"0 15 10 * * ?"             每天上午10:15触发 
"0 15 10 * * ? *"          每天上午10:15触发 
"0 15 10 * * ? 2005"        2005年的每天上午10:15触发 
"0 * 14 * * ?"       在每天下午2点到下午2:59期间的每1分钟触发 
"0 0/5 14 * * ?"      在每天下午2点到下午2:55期间的每5分钟触发 
"0 0/5 14,18 * * ?"     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
"0 0-5 14 * * ?"            在每天下午2点到下午2:05期间的每1分钟触发 
"0 10,44 14 ? 3 WED"       每年三月的星期三的下午2:10和2:44触发 
"0 15 10 ? * MON-FRI"      周一至周五的上午10:15触发 
"0 15 10 15 * ?"               每月15日上午10:15触发 
"0 15 10 L * ?"                 每月最后一日的上午10:15触发 
"0 15 10 ? * 6L"                每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6#3"               每月的第三个星期五上午10:15触发

" */5 * * * * ? "                  每隔5秒执行一次

" 0 */1 * * * ? "                   每隔1分钟执行一次

" 0 0 23 * * ? "                    每天23点执行一次:

" 0 0 1 * * ? "                      每天凌晨1点执行一次:

" 0 0 1 1 * ? "                      每月1号凌晨1点执行一次:

" 0 0 23 L * ? "                     每月最后一天23点执行一次:

" 0 0 1 ? * L "                       每周星期天凌晨1点实行一次:

" 0 26,29,33 * * * ? "            在26分、29分、33分执行一次:

" 0 0 0,13,18,21 * * ? "         每天的0点、13点、18点、21点都执行一次:

" 0 0/5 * * * ? "                    每隔5分钟执行一次:

【工程截图】

【CronJob.java】

package com.higgin.cron;

import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; public class CronJob implements Job{ public CronJob() {
System.out.println("---CronJob构造方法---"); //测试每次调用是否会重新创建一个新的CronJob类
} @Override
public void execute(JobExecutionContext jobCtx) throws JobExecutionException {
System.out.println(jobCtx.getTrigger().getName()+"----任务开始执行了----"+(new Date()));
} }

【CronTriggerRunner.java】

package com.higgin.cron;

import java.text.ParseException;

import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory; public class CronTriggerRunner {
public static void main(String[] args) {
try{
JobDetail jobDetail = new JobDetail("job1_2","jGroup1",CronJob.class); CronTrigger cronTrigger = new CronTrigger("trigger1_2","tGroup1");
CronExpression cronExp = new CronExpression("0/5 * * * * ?");//从0秒开始,每隔5秒执行一次
cronTrigger.setCronExpression(cronExp); SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.scheduleJob(jobDetail, cronTrigger);
scheduler.start(); } catch (ParseException e) {
e.printStackTrace();
}catch (SchedulerException e) {
e.printStackTrace();
}
}
}

【运行结果】

03_CronTrigger的更多相关文章

随机推荐

  1. 查看db连接数sql

    /****** Object: StoredProcedure [dbo].[SP_Conn] Script Date: 12/09/2018 19:03:28 ******/ SET ANSI_NU ...

  2. 29.最小的K个数

    题目描述:   输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 思路分析:   利用快速排序的partition函数,par ...

  3. 【语义分割】large kernel matters中GCN模块的pytorch实现

    GCN模块的实现比较简单,在giuhub上看到两种实现,轻微不同 实现一:https://github.com/ycszen/pytorch-segmentation/blob/master/gcn. ...

  4. Android SharedPreferences(数据存储,需掌握)

    1.SharePrefences类介绍 SharedPreferences 类提供了一个通用框架,以便您能够保存和检索原始数据类型的永久性键值对. 您可以使用 SharedPreferences 来保 ...

  5. React笔记:ref注意事项

    [一]使用ref必须用在[类型式的组件]才起作用,用在[函数式的组件]是无效的. 下面这个例子用在了[函数式的组件]上,所以是无效的: function MyFunctionalComponent() ...

  6. Visual Studio Ultimate 2013 免费下载地址

    ed2k://|file|cn_visual_studio_2010_ultimate_x86_dvd_532347.iso|2685982720|4AE6228933DDE49D9BFA4C3467 ...

  7. codeforces 1068d Array Without Local Maximums dp

    题目传送门 题目大意:给出一个长度为n的数组,这个数组有的数是给出的,有的数是固定的,且范围都在[1,200]之间,要求这个数组中,每一个数字都小于等于 前后两个数字的最大值,求方案数mod p. 思 ...

  8. HDU 5938 Kingdom of Obsession(数论 + 二分图匹配)

    题意: 给定S,N,把S+1,S+2,...S+N这N个数填到1,2,...,N里,要求X只能填到X的因子的位置.(即X%Y=0,那么X才能放在Y位置) 问是否能够放满. 分析:经过小队的分析得出的结 ...

  9. UESTC - 1724 GCD区间求和

    依然是神奇的欧拉函数 若GCD(n,i)=k 则GCD(n/k,i/k)=1, 令i/k=x,有GCD(n/k,x)=1, →k*GCD(n/k,x)=1中x的个数 = GCD(n,i)=k的和 范围 ...

  10. dedecmd 全局标签

    dedecms全局标签     dedecms 标签使用手册  全局标签   adminname|责任编辑   arclist|文档列表   arclistsg|独立单表模型列表   ask|问答标签 ...