不知道你在玩游戏的时候是否发现过以下情况:

  1. 玩某些游戏的时候,发现他的排行榜并不是时时更新的,而是每半个小时,或者一个小时更新一次。
  2. 又比如很火的王者荣耀手游,它的日常任务,都是每天5点进行更新。

那么,这些时间控制,到底是由谁控制得如此精准呢?原来,这些都是corn表达式的功劳。


1. 了解 Cron 表达式

cron 表达式:由 若干数字、空格、符号 按一定的规则组成的一组字符串,从而表达时间的信息。类似于正则表达式。

cron 表达式结构

这个 cron 表达式字符串被 6 个空格分成了 7 个部分,标准格式:A B C D E F G。含义如下:

A 表示秒;B 表示分;C 表示小时;D 表示日;E 表示月;F 表示星期;G 表示年

cron 表达式中的 “G” 是可加可不加的,用得比较少,可以省略的。

2. Cron 表达式案例

  1. cron="0 */5 * * * ?":它的秒位为 0,表示每个 0 秒,分位为 */5,意思是每 5 分钟。所以总的来说,就是每 5 分钟(每5分0秒)时执行一次;
  2. cron="0 30 8,10,12 * * ?":它的秒位为0,分位为30,时位为一串集合,则它的意思是每天 8点半、10点半、12点半各执行一次;
  3. cron="0 0 */1 * * ?":它就是每个小时整点执行一次
  4. cron="0 0 9-18 * * MON-FRI":周一到周五的早上9点到晚上6点
  5. cron="0 0 14 L * ?":每个月最后一天,下午2点

3. Cron 表达式特殊字符

cron 表达式字符

  • *:代表所有可能的值
  • -:指定范围
  • ,:列出枚举 例如在分钟里,"5,15"表示5分钟和20分钟触发
  • /:指定增量 例如在分钟里,"3/15"表示从3分钟开始,每隔15分钟执行一次
  • ?:表示没有具体的值,使用 ? 要注意冲突
  • L:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五
  • W:只能用在月份中,表示最接近指定天的工作日
  • #:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五

示例

  • 0 * * * * ? 每1分钟触发一次
  • 0 0 * * * ? 每天每1小时触发一次
  • 0 0 10 * * ? 每天10点触发一次
  • 0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
  • 0 30 9 1 * ? 每月1号上午9点半
  • 0 15 10 15 * ? 每月15日上午10:15触发
  • */5 * * * * ? 每隔5秒执行一次
  • 0 */1 * * * ? 每隔1分钟执行一次
  • 0 0 5-15 * * ? 每天5-15点整点触发
  • 0 0/3 * * * ? 每三分钟触发一次
  • 0 0 0 1 * ? 每月1号凌晨执行一次

【参考资料】

一看就懂:cron 表达式
定时任务cron表达式详解

【Cron】学习:cron 表达式相关推荐

  1. 5位 Cron 正则匹配表达式(分时日月周)

    5位 Cron 正则匹配表达式(分时日月周) 结构 # 文件格式說明 # --分鐘(0 - 59) # | --小時(0 - 23) # | | --日(1 - 31) # | | | --月(1 - ...

  2. ae编程语言as_【微教程】从编程的思路学习AE表达式

    (这是一段引人入胜的开场白......),针对知道ae基础操作的群体的教学 授人以鱼不如授人以渔,学习表达式应该是从学会脚本语言入手,而不是通过记忆的方式记住每种效果的表达式语句.这里说的编程并非特指 ...

  3. EL表达式 | 深入学习EL表达式

    目录 一:深入学习EL表达式 1.什么是EL表达式 2.EL表达式的主要作用 3.EL表达式的使用 4.面试题 :${abc} 和 ${"abc"}的区别 5.EL表达式读取数据的 ...

  4. Cron Expressions——Cron 表达式

    Cron表达式被用来配置CronTrigger实例. Cron表达式是一个字符串,字符串以5或6个空格隔开,分开为6或7个域,每一个域代表一个含义. 记忆方式:秒分时 日月周 年 Cron有如下两种语 ...

  5. @Scheduled(cron = “* * * * * *“) 注解 cron 表达式使用

    一个cron表达式有至少6个(也可能7个,第7个表示年,一般不使用)有空格分隔的元素: 其中每个元素中可能出现的符号有"数字","-","/" ...

  6. c语言解析cron文件,Cron(表达式)详解

    常用定时任务框架有Quartz和Spring提供的@Schedule注解,两者都使用了Cron表达式,下面详细讲解下Cron的语法规则: Cron支持7个域,分别是:秒 分 时 日 月 周 年,其中年 ...

  7. linux cron网址,cron 计划任务问题,我的cron要求是点击网站一个网址

    我的网站要设置一个计划任务,是通过打开一个网址实现的.官方的文件是下面这样的.我输入哪一个都不行.请求帮助.我应该在后台输入什么才行呢? Linux System You can use one of ...

  8. linux cron实例,cron,linux定时实施工具详解及实例

    cron,linux定时执行工具详解及实例 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关 ...

  9. linux下cron和cron的区别,Linux环境下` `与$()用法的区别eval和crontab的意义

    命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置.shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支 ...

  10. 2021年大数据常用语言Scala(七):基础语法学习 条件表达式

    条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作.scala条件表达式的语法和Java一样. 有返回值的if 与Java不一样的是 ...

最新文章

  1. UTF-8与UTF-8 BOM
  2. 数据库之事务及事务的 ACID 性质
  3. 宝马计算机考试答案,宝马BMW旅程电脑功能键的说明与测试程序
  4. python操纵excel的方法_python操作Excel的几种方式
  5. 90后女科学家,四年完成清华大学硕博连读,解决多个世界级难题
  6. Windows 10 怎样管理已连接过的无线网?
  7. EntityFramework 事务的使用
  8. 下载频道用户使用指南!!
  9. 对于三极管饱和状态的理解
  10. java jre安装_JRE安装与配置图文教程
  11. java复制文件乱码_为什么用JAVA写的一个复制文本文档的程序复制出来文本文档乱码...
  12. 使用osgeo的GDAL获取tiff文件坐标
  13. 模电:集成运算放大器
  14. java 解析josn数组
  15. 如何注册PayPal账户
  16. Hyperspace初体验:Delta Lake表索引
  17. 程序员必上的20大网站
  18. python开发视频播放器_基于 Flask 的在线视频播放器
  19. 微信公众号发送模板通知
  20. PPT打开显示找不到 ppcore.dll,无法打开 PPT

热门文章

  1. Day21 jQuery 基础二
  2. 2023洗地机哪个牌子的好用?洗地机排行榜推荐
  3. Consul arch(二) 逆熵 anti-entropy
  4. [线段树]小喵喵的新家
  5. 施炯谈WP7设备上的传感器开发
  6. 使用Python实现量化交易机器人定时启动或停止小工具
  7. 《调色师手册:电影和视频调色专业技法(第2版)》——配置调色影院
  8. 如何才能学好java框架
  9. [转] 食物相关的英文单词
  10. 考研三年,做了同传,迎娶白富美,实现财务自由。这是真鸡汤!