定时任务的时间规则设置
单纯针对时间的设置规则
org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpression属性。
一个cronExpression表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:
1.秒(0–59)
2.分钟(0–59)
3.小时(0–23)
4.月份中的日期(1–31)
5.月份(1–12或JAN–DEC)
6.星期中的日期(1–7或SUN–SAT)
7.年份(1970–2099)
0 0 10,14,16 * * ? (每天上午10点,下午2点和下午4点)
0 0,15,30,45 * 1-10 * ?(每月前10天每隔15分钟)
30 0 0 1 1 ? 2012(在2012年1月1日午夜过30秒时)
0 0 8-5 ? * MON-FRI
每个工作日的工作时间
各个时间可用值如下:
秒0-59 , - * /
分0-59 , - * /
小时0-23 , - * /
日1-31 , - * ? / L W C
月1-12 or JAN-DEC , - * /
周几1-7 or SUN-SAT , - * ? / L C #
年(可选字段) empty, 1970-2099 , - * /
可用值详细分析如下:
“*”——字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。
“?”——字符可以用在“日”和“周几”字段.它用来指定'不明确的值'.这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。(这话写的不清楚,可以详细看下一行解释)
“?”字符:表示不确定的值。只能用在“月”和“周”两个域。它也匹配域的任意值,但实际不会。因为“月”和“周”会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 0 0 0 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
“-”——字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点"。
“,”——字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday"。
“/”——字符用来指定一个值的的增加幅度.比如在“秒”字段中设置为"0/15"表示"第0, 15, 30,和45秒"。而"5/15"则表示"第5, 20, 35,和50".在'/'前加"*"字符相当于指定从0秒开始.每个字段都有一系列可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到 59,对于“小时”字段来说其为0到23,对于“日”字段来说为0到31,而对于“月”字段来说为1到12。"/"字段仅仅只是帮助你在允许的数值范围内 从开始"第n"的值。
“L”——字符可用在“日”和“周几”这两个字段。它是"last"的缩写,但是在这两个字段中有不同的含义。例如,“日”字段中的"L"表示"一个月中 的最后一天" ——对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中,它简单的表示"7" or "SAT",但是如果在“周几”字段中使用时跟在某个数字之后,它表示"该月最后一个星期×" ——比如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。
“W”——可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五)。比如你将“日”字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日,触发器会在16号也就是周一触发。如果15号为周 二,那么当天就会触发。然而如果你将“日”字段设为"1W",而一号又是周六,触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边 界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
“L”和“W”可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。
“#”——字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" =表示该月第一个周一而"4#5" =该月第五个周三。注意如果你指定"#5"该月没有第五个“周×”,该月是不会触发的。
“C”——字符可用于“日”和“周几”字段,它是"calendar"的缩写。它表示为基于相关的日历所计算出的值(如果有的话)。如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。
对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。
一些例子:
"0 0 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分每分钟一次触发
"0 0/5 14 * * ?"每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?"每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?"每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED"三月的每周三的14:10和14: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
参考的资料:
1、https://blog.csdn.net/u014464597/article/details/41013899
2、https://blog.csdn.net/aspnet2002web/article/details/52810569(能看懂?这个含义)
定时任务的时间规则设置相关推荐
- Java Spring @Scheduled 定时任务crontab表达式设置
Java Spring @Scheduled 定时任务crontab表达式设置 1. Cron详解 2. 例子 参考 1. Cron详解 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或 ...
- linux定时任务crontab的设置
linux定时任务crontab的设置 http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html vi /etc/cront ...
- 定时任务的 执行时间设置规则
spring 定时任务的 执行时间设置规则 单纯针对时间的设置规则 org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运 ...
- Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...
- linux创建定时任务命令,linux设置定时任务的方法步骤
一,首先登录 二,找到文件夹 三,查看定时任务 crontab -l 四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq 时间格式 分钟 小时 日期 月份 周 命令 数字范围 0-59 ...
- windows计划任务 0xff_利用定时任务和VBS设置windows自动语音定时提醒
导读:现在社会中很多人每天都有很多的事情需要处理,事情多了不免总是有疏漏遗忘.这里为大家介绍一个windows小技巧无需安装软件即可设置语音提醒.例如:工作原因需要每天固定时间查看某些文件或者做某些事 ...
- Bamboo Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-82 from celery.task.sched ...
- Linux终端定时任务重启,Linux设置定时重启系统的方法:定时任务crontab 和 编写脚本...
目录 crontab定时任务方法 1.确保crond服务正常运行 2.crond服务相关命令 3.编辑crond定时任务 编写自动重启脚本 1.定时重启脚本 2.设置开机启动 3.重启系统之后,自动重 ...
- mysql中如何设置定时任务_mysql如何实现设置定时任务 mysql实现设置定时任务方法...
本篇文章小编给大家分享一下mysql实现设置定时任务方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.首先检查是否开启了定时任务 查看event是否开启 : SHOW ...
最新文章
- js---html元素操作
- spring事务模板使用
- 线性回归csv数据集_数据科学的基石:统计学、机器学习、计算机科学(三)——线性回归...
- java基础的三个框架,进阶学习资料!
- 东北大学软件项目管理与过程改进_可视化看板——汽车研发项目管理成功的奥秘...
- 平板电脑安装软件_下载适用于华为和荣耀手机平板电脑的Googlefier GMS安装程序...
- 解读:百度官方公告对于6.22、6.28事件解释
- 智能公交市场的竞争与合作
- wap移动网页开发rem用法
- 14寸笔记本电脑推荐_2020笔记本电脑推荐(小米篇)
- python图像切面numpy_NumPy做图像处理不香吗?我用Python把秋日里最美的景色做成了这种效果~...
- d2j-dex2jar classes.dex报错
- C# 在PowerPoint中给图片添加超链接和获取图片的超链接
- matlab 三维点 边界曲面,【matlab三维散点绘制曲面】
- 转换YV12到RGB565图像转换,附YUV转RGB测试
- 牛牛现在有n张扑克牌-字符串
- 第4章 序言的具体写法
- vue 循环播放音乐列表 音量控制
- 广州移动MGV3001_ZG_S905L3_UWE5621DS_线刷固件包
- java 判断经纬度_Java中根据经纬度来判断距离
热门文章
- Spring系列:mysqlsqlserver对比
- 【js】判断是否包含数字
- fflush函数作用浅析
- XILINX SGMII千兆以太网 (2)
- JavaScript--环视
- C语言串的基本操作(assign,compare,concat,index,insert,delete,replace)
- Ubuntu 20.04安装sogou输入法
- JzxxOJ导图:第四题“求商数和余数”——C++解法
- Linux安装 VMware tools 工具的方法(转,已测试成功)
- c语言散转指令,按键C语言.doc