Cron 定时任务表达式

Cron 表达式是一个字符串,分为6或7个域,每一个域代表1个含义
Cron 有以下两种语法格式

  1. seconds Minutes Hours Day Month week Year
  2. seconds Minutes Hours Day Month week

结构:Cron 从左到右(用空格隔开)
秒 分 小时 月份中的日期 月份 星期中的日期 年份

各字段的含义

  1. 秒 :值域【0-59】;允许特殊字符【,- * / 】 ;
  2. 分钟:值域【0-59】;允许特殊字符【,- * / 】 ;
  3. 小时:值域【0-23】;允许特殊字符【,- * / 】 ;
  4. 日:值域【1-31】;允许特殊字符【,- * / L W C】 ;
  5. 月: 值域【1-12】;允许特殊字符【,- * /】 ;
  6. 星期: 值域【1-7(国外星期一为中国的周日)】;允许特殊字符【,- * ? / L C #】;
  7. 年(可选):值域【1970-2099】;允许特殊字符【,- * /】;

Cron 表达式的时间字段除允许数值外,还可以使用一些特殊字符,提供列表,范围,通配符等功能,细说如下

星号():可用在所有字段中,表示对应时间域的每一个时刻,例如( * )在分钟字段时,表示每分钟
问号(?):该字符只在日期和星期字段中使用,它通常指定为无意义的值,相当于占位符;
减号(-):表达一个范围。如在小时字段中使用“10-12”表示从10到12点,即10,11,12;
逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRl”,则表示星期一,星期三,星期五;
斜杠(/): x/y 表达 一个等步长序列,x为起始值,y为增量步长值,如在字段中使用0/15,则0,15,30,45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用
/y,它等同于0/y
L : 该字符只在日期和星期字段中使用,代表“Last” 意思。但它在两个字段中意思不同,L在日期字段中,表示这个月份的最后一天,如1月的31号,瑞年二月的28号;如果L用在星期中,则表示星期六,等同于7,但是如果L出现在星期字段里,而且前面有一个数值x,则表示这个月的最后x天,例如:6L表示该月的最后星期五;
W: 该字符只能出现在日期字段里,是对前导日期的修饰,表示该日期最近的工作日,例如15W 表示离该月15号最近的工作日,如果改约15号是星期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结果就是15号星期二,但必须注意关联匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号的星期一,而非上个月的最后的那天,W字符串只能指定单一日期,而不能指定日期范围;
LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日。
井号(#):该字符只能在星期字段中使用,表示当月某个工作日,如6#3表示当月的第三个星期五(6表示星期五,#3表示抢当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;
C: 该字段只在日期和星期字段中使用,代表“Calendar”的意思,它的意思是计划所关联的日期,如果日期没有被关联,则相当于日期中所有日期,例如5C在日期字段中就相当于日历5日以后的第一天,1C在星期字段中相当于星期日的第一天。

Cron表达式对特殊字符的大小写不敏感。对代表星期的缩写英文大小写也不敏感。

例子:

@Scheduled(cron="0 0 1 1 1 ?"//每年1月的1号的1:00:00执行1次
@Scheduled(cron="0 0 1 1 1,6 ?"//1月和六月的1号的1:00:00
@Scheduled(cron="0 0 1 1 1,4,7,10 ?"//每个季度的第一个月的一号1:00:0010 0 2 1 * ? *   表示在每月的1日的凌晨2点调整任务

  (20 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业

  (30 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作

  (40 0 10,14,16 * * ?   每天上午10点,下午2点,4点 

  (50 0/30 9-17 * * ?   朝九晚五工作时间内每半小时 

  (60 0 12 ? * WED    表示每个星期三中午12点 

  (70 0 12 * * ?   每天中午12点触发 

  (80 15 10 ? * *    每天上午10:15触发 

  (90 15 10 * * ?     每天上午10:15触发 

  (100 15 10 * * ? *    每天上午10:15触发 

  (110 15 10 * * ? 2005    2005年的每天上午10:15触发 

  (120 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发 

  (130 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发 

  (140 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 

  (150 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发 

  (160 10,44 14 ? 3 WED    每年三月的星期三的下午2:102:44触发 

  (170 15 10 ? * MON-FRI    周一至周五的上午10:15触发 

  (180 15 10 15 * ?    每月15日上午10:15触发 

  (190 15 10 L * ?    每月最后一日的上午10:15触发 

  (200 15 10 ? * 6L    每月的最后一个星期五上午10:15触发 

  (210 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发 

  (220 15 10 ? * 6#3   每月的第三个星期五上午10:15触发
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cron表达式是用于定义定时任务调度的一种时间表达式。在Vue中,可以使用vue-quartz插件来实现定时任务的调度。 首先,需要在项目中安装vue-quartz插件。可以通过npm或yarn进行安装: ``` npm install vue-quartz ``` 或 ``` yarn add vue-quartz ``` 安装完成后,在Vue的入口文件main.js中引入并注册vue-quartz插件: ```javascript import Vue from 'vue'; import VueQuartz from 'vue-quartz'; Vue.use(VueQuartz); ``` 接下来,在需要定义定时任务的组件中,使用`<cron>`标签来设置cron表达式: ```vue <template> <div> <h1>定时任务</h1> <cron v-model="cronExpression" @change="handleCronChange"></cron> </div> </template> <script> export default { data() { return { cronExpression: '' }; }, methods: { handleCronChange(cronExpression) { // 在这里可以处理cron表达式的变化,并执行相应的操作 console.log('cron表达式变化:', cronExpression); } } }; </script> ``` 在上面的示例中,通过`v-model`指令将cron表达式绑定到组件的data属性`cronExpression`上,并通过`@change`事件监听cron表达式的变化。 当用户在页面上选择或输入cron表达式时,`handleCronChange`方法会被调用,并传入新的cron表达式。在该方法中可以根据cron表达式执行相应的定时任务逻辑。 请注意,以上只是一个简单的示例,具体的定时任务逻辑需要根据实际需求进行实现。同时,需要了解cron表达式的语法规则和含义,以确保正确设置定时任务执行时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值