java 设置定时任务 cron

简介: Cron表达式是一个字符串,常用于java定时任务,字符串以5或6个空格隔开,分为6或7个属性,每一个属性代表一个含义

Cron表达式是一个字符串,常用于java定时任务,字符串以5或6个空格隔开,分为6或7个属性,每一个属性代表一个含义,Cron有如下两种语法格式(一般使用第二种):

Seconds Minutes Hours DayofMonth Month DayofWeek Year

Seconds Minutes Hours DayofMonth Month DayofWeek  


常见使用

0 0 2 1 * ? *                         在每月的1日的凌晨2点调度任务

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

0 15 10 ? 6L 2022-2026       2022-2026年的每个月的最后一个星期五上午10:15执行作

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

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

0 0 12 ? * WED                    每个星期三中午12点

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 2022-2025  2022年至2025年的每月的最后一个星期五上午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点都执行一次


属性 可用值
Seconds , - * / 四个字符  0-59的整数
Minutes , - * / 四个字符  0-59的整数
Hours , - * / 四个字符  0-23的整数
DayofMonth , - * / ? L W C 八个字符  0-31的整数
Month , - * / 四个字符 1-12的整数  JAN-DEC
DayofWeek , - * / ? L C # 八个字符  1-7的整数 SUN-SAT (1=SUN)
Year , - * / 四个字符 1970-2099的整数


特殊字符 含义
* 表示匹配该域的任意值,假如在Minutes域使用*, 即表示每分钟都会触发事件
? 只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和 DayofWeek会相互影响
- 表示范围
/ 表示起始时间开始触发,然后每隔固定时间触发一次
, 表示列出枚举值值。
L 表示最后,只能出现在DayofWeek和DayofMonth域,如果在DayofWeek域使用5L,意味着在最后的一个星期四触发,在天(月)子表达式中,“L”表示一个月的最后一天,在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT
W 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。
LW 这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五
# 用于确定每个月第几个星期几,只能出现在DayofMonth域
目录
相关文章
|
4月前
|
缓存 Java Spring
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
128 1
|
4月前
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
89 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
Java
用java搞定时任务,将hashmap里面的值存到文件里面去
本文介绍了如何使用Java的`Timer`和`TimerTask`类创建一个定时任务,将HashMap中的键值对写入到文本文件中,并提供了完整的示例代码。
43 1
用java搞定时任务,将hashmap里面的值存到文件里面去
|
2月前
|
Java Linux iOS开发
如何设置 Java 的环境变量
设置Java环境变量是使用Java开发工具和运行Java程序的前提。主要步骤包括:安装JDK,配置系统环境变量中的JAVA_HOME、PATH和CLASSPATH,确保命令行可直接调用javac和java命令。
59 6
|
2月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
158 1
|
2月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
151 1
|
4月前
|
缓存 负载均衡 安全
|
4月前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。
|
5月前
|
存储 Java
java 服务 JVM 参数设置配置
java 服务 JVM 参数设置配置
164 3
下一篇
DataWorks