专栏首页公众号文章这么讲Cron表达式一看就明白【Quartz.NET总结二】

这么讲Cron表达式一看就明白【Quartz.NET总结二】

Quartz.NET的任务调度,主要就是依靠CronTrigger和Cron表达式。Cron是已经在UNIX存在了很长一段时间,它有着强大和可靠的调度能力。CronTrigger类也正是是基于Cron调度能力。

CronTrigger使用Cron表达式。它能灵活的设置各种计划任务,比如每周一至周五,早上8点执行某项任务。然而虽然Cron表达式功能强大,灵活,但是也很混乱难懂。所以便在这里介绍Cron表达式相关的配置。希望大家帮助大家快速理解。

Cron格式

Cron表达式被用来配置CronTrigger实例。Cron表达式是一个由6,7个域(子表达式)和空格组成的字符串。每个子表达式都描述了一个单独的日程细节,具体入下图所示:

所以,比如一个cron表达式字符串"0 0 10 ? * MON",这表示“每周一的中午10:00”。

上面的列表,可以清楚的看出,所有的域中的值都有特定的合法范围,每个域都可以单独配置。例如:Day of week(周中的天)必须有值(SUN—SAT)或是使用特殊字符,所以"0 0 10 ? * MON",就可以改成为"MON-FRI", "MON, WED, FRI"甚至是"MON-WED,SAT"。

特殊字符说明

  • '*' :表示域中“每个”。比如在"Minutes"域中的*表示每分钟。
  • '?' :用在day-of-month及day-of-week域中,表示“没有指定值”。这对于需要指定一个或者两个域的值而不需要对其他域进行设置来说相当有用。例如,我想在一个月的某一天(例如,第十),而不在乎具体是哪一天,我会把“10”放在day-of-month 域,然后“?”在day-of-week里。
  • '-' :指定范围,例如,“10-12”在Hours域,表示10点到12点。
  • ',' :指定附加值,例如,“MON,WED,FRI”在day-of-week域中,表示“星期一,星期三和星期五”。
  • '/' :没有具体的值,用来用于指定值的增量,例如, 如果在Seconds域中,'0/15',它表示“从0开始,每隔15秒”。
  • 'L' :只用在day-of-month及day-of-week中,这个字符是"last"的简写,但是在两个域中的意义不同。例如,在day-of-month域中的"L"表示本月的最后一天,即,一月的31日,非闰年的二月的28日。如果它用在day-of-week中,则表示"7"或者"SAT"。但是,这个字符跟在别的值后面,则表示"当月的最后的周XXX"。例如:"6L" 或者 "FRIL"都表示本月的最后一个周五。同时,也可以用来指定第某个月的最后一天的倒数第几天,如“L-3”表示某月最后一天的倒数第三天。注意:当使用'L'选项时,最重要的是不要指定列表或者值范围,否则会导致混乱。
  • 'W' :用于day-of-week域中指定给定日(星期一星期五)最近的一天。例如:"15W",则表示“距离月中15号最近的工作日是周几”。
  • '#' :表示本月中的第几个周几。例如:day-of-week域中的"6#3" 或者 "FRI#3"表示“本月中第三个周五”。

相关实例

注意:'?' and '*' 在 day-of-week和day-of-month的影响

本文分享自微信公众号 - 洞见互联网(coder-zwz),作者:章为忠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx总结(十一)实现高可用的负载均衡服务

    之前讲了Nginx 如何实现负载均衡以及如何实现动静分离,实现系统的分布式部署,提高系统的并发性能。但是,有个问题:如果Nginx 系统挂了,整个系统就都不可用...

    架构师精进
  • 福利 | 2018各大技术大会资料汇总(可下载)

    以下资料全部都来自于互联网,请勿用作商业用途。只是希望大家都能转给身边有需要的人~

    架构师精进
  • 张小龙微信公开课演讲实录

    在2019微信公开课Pro的 “微信之夜” 环节,腾讯公司高级执行副总裁、微信事业群总裁张小龙发表了演讲,关于微信的设计原则、历史以及初心。

    架构师精进
  • OpenROV Cockpit说明

    最近的工程要参考 OpenROV 的内容,在 Github 上找到了 OpenROV 的相关包与源码,翻译总结官方提供的 README.md 如下: Co...

    剑影啸清寒
  • 天若ocr文字识别工具,集合百度、腾讯、有道、搜狗

    1、对于搜狗的接口调用的还是http://ocr.shouji.sogou.com/v2/ocr/json,这个接口识别效果很好,但是对于图片的尺寸有规定。 ...

    Erwin
  • I/O中断原理

    在Windows内核原理-同步IO与异步IO和《高性能网络通讯原理》两篇文章中,都出现了中断这两个字。本篇文章会对中断操作的原理进行说明。

    用户6786055
  • 比DGL快14倍:PyTorch图神经网络库PyG上线了

    项目链接:https://github.com/rusty1s/pytorch_geometric

    昱良
  • 操作系统接口

    图中的插座就是一个接口,插座的里面连接着线路,插座的外面连接着我们所使用的电器的插头。

    xujjj
  • FTP协议数据包命令含义详解

    本节我们掌握FTP协议的数据包格式,为编码实现奠定基础。我们先看看控制命令的格式。当用户端通过控制命令通道想服务器端发送数据后,服务器端一定会产生回复。回复主要...

    望月从良
  • iOS中编写高效能结构体的7个要点

    结构体是C/C++两种语言中的基础语法, C语言中的结构体只是一个存粹的数据集合类型的描述,它只有数据成员而没有成员方法。C++中的结构体则被赋予为一个类定义...

    欧阳大哥2013

扫码关注云+社区

领取腾讯云代金券