Hangfire定时任务设置CronExpression表达式
Cron format helper
This utility helps you build Cron expressions easily by choosing job scheduling scenarios. The crontab entries produced work with Vixie Cron, popular in many Linux distributions.
Vixie Cron - a quick overview
Vixie Cron is configured by editing a "crontab" file that indicates the date and times to run given commands. Each user of the system can have their own crontab file and there is also a system-wide crontab file.
The system-wide file is usually located under the "/etc
" directory and called "crontab
". Changes to this file are checked and reloaded automatically but changes to user-specific crontab files wont get picked up unless you reload them with the crontab
command.
The beginning of the /etc/crontab
file usually has some environment variable settings. Below that each line in the file gives the information for a particular job to run. A typical crontab line looks something like this:
The user field ("some-user" above) is specific to the system-wide crontab file. This field isnt necessary for user-specific crontab files as commands are run as the owning user.
The command field ("some-command" above) may be a straight-forward shell command or an executable script. The path to use to locate the script can be given in the PATH
environment variable in the crontab file or you can give absolute paths.
The bit that this utility is designed to assist with is the Cron expression. It consists of 5 fields that represent the following:
The values accepted for each field are: The minute field value must be 0-59, the hour field 0-23, the day of month field 1-31, the month field 1-12 and the day of week field 0-6 (Sunday is 0 but this can also be given as 7). Days can be also be given as three letter abbreviations (sun, mon, tue, wed, thu, fri, sat
) as can months (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
) but you should be careful with these as some versions of Cron may not support them in ranges and lists (see below).
The values can be given in a variety of formats:
- An asterisk (
*
) character will match all possible values for the field: e.g. the Cron expression "* * * * *
" will run the command every minute since this is the smallest representable time period. - A literal value: e.g. "
30 * * * *
" will run the command whenever the minute is 30, i.e. once an hour at half-past the hour.
"* * 5 * *
" will run every minute when it is the 5th day of the month. - A list is given by separating each possible value using a comma: e.g. "
0,15,30,45 * * * *
" will run the command whenever the minute is either 0, 15, 30 or 45. Another example, "0 1,2,3 * * *
" will run the command between 1am and 3am (inclusive) but only when the minute is 0, i.e. on the hour. Lists can also contain ranges (see below). - A range is given by separating the lower and upper values of the range with a hyphen (
-
): e.g. "0 1 1-5 * *
" will run the command at 1am on the first, second, third, fourth and fifth days of the month. - An increment is given by using a forward slash: e.g. "
*/15 * * * *
" will run the command every 15 minutes starting on the hour. i.e. this example is the same as the list example given above to run whenever the minute is 0, 15, 30 or 45.
Each of the possible formats above effectively resolves to a list of values to match. For example, if you use the *
character in the day of week field it is the same as writing 1,2,3,4,5,6,7
. Another example: putting */20
in the minute field is like writing 0,20,40
. This is important to remember as it is not possible to write something like */70
in the minute field and expect it to run every 70 minutes - it is invalid!
It also means you can get some unexpected behaviour - for example: say you put */40
in the minute field. This would not run every 40 minutes. It would actually run when the minute is 0 and when it is 40. So it would run 40 minutes after the hour and then again, 20 minutes later, on the next hour.
This utility produces true periodical expressions by only allowing factors of 60 or 24 for the minute/hour field respectively.
Hangfire定时任务设置CronExpression表达式的更多相关文章
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户 ...
- spring框架的定时任务cronExpression表达式详解
附:cronExpression表达式解释: 0 0 12 * * ?---------------在每天中午12:00触发 0 15 10 ? * *---------------每天上午10:15 ...
- 关于cronExpression表达式
spring 定时任务设置,关于cronExpression表达式: 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1 ...
- Quartz.net 定时任务之Cron表达式
一.cron表达式简单介绍和下载 1.在上一篇博客"Quartz.net 定时任务之简单任务"中,我简单介绍了quartz的使用,而这篇博客我将介绍cron的具体使用(不足之处望大 ...
- Quartz在Spring中动态设置cronExpression
什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文 ...
- JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
referenc:https://blog.csdn.net/clementad/article/details/42042111 下面介绍几种常用的定时器及其实现方法: 第一种:Timer和Time ...
- 【Hadoop离线基础总结】oozie定时任务设置
目录 简介 概述 oozie定时任务设置 1.拷贝定时任务的调度模板 拷贝hello.sh脚本 3.修改配置文件 4.上传到hdfs对应路径 5.运行定时任务 简介 概述 在oozie当中,主要是通过 ...
- Quartz中时间表达式的设置-----corn表达式
Quartz中时间表达式的设置-----corn表达式 时间格式: <!-- s m h d m w(?) y(?) -->, 分别相应: 秒>分>小时>日>月 ...
- Quartz中时间表达式的设置-----corn表达式 (转)(http://www.cnblogs.com/GarfieldTom/p/3746290.html)
Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y( ...
随机推荐
- JAVA RSA非对称加密详解[转载]
一.概述1.RSA是基于大数因子分解难题.目前各种主流计算机语言都支持RSA算法的实现2.java6支持RSA算法3.RSA算法可以用于数据加密和数字签名4.RSA算法相对于DES/AES等对称加密算 ...
- 转 SaaS应用十大关键NFR - 第1部分
非功能需求(SaaS的NFR)是跨越应用功能的跨越所有模块和功能的要求.这些要求深入到应用程序的架构,这是他们得到解决的地方.因此,在SaaS架构阶段之前了解这些NFR对于特定应用程序很重要,因此应用 ...
- Linux 搜某个文件里关键字的上下500行到执行文件里
Linux 搜某个文件里关键字的上下500行到执行文件里grep '300000111110' -C 500 ./saastom7061_APP3/logs/sass.log >/app/saa ...
- 3-Fiddler修改请求或响应内容
1.修改请求内容 方法一:设置请求前断点,修改请求后发送 1)设置断点 2)选中请求,在inspectors下修改请求内容 3)修改请求后,点击Break on Response按钮,进行请求的发送 ...
- sflow介绍与安装过程
介绍: sFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量(如大于10Gbit/s)环境下的 ...
- Java中不定项参数(可变参数)的作用和使用方式
引言: 我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况.一般我们会用方法重载来解决问题: //方法重载,解决参数个数不确定问题 public void method(); publi ...
- Openvswitch手册(4): Mirror
这一节我们来分析Mirror Mirror就是配置一个bridge,将某些包发给指定的mirrored ports 对于包的选择: select_all,所有的包 select_dst_port se ...
- Visualizing the Git data model
I wrote a small tool git-graph.py over the weekend which can be used to generate the object graph of ...
- 使用 VSTS 进行 CI 的过程中,无法识别 .NET Core 2.x 的情况处理
大概是由于 .NET Core 2.1 还没有正式发布,使用 VSTS 进行持续集成(CI)的过程中,自动 Build 的环节无法识别 .NET Core 2.1 的框架,查看日志会提示如下错误: V ...
- 感悟优化——Netty对JDK缓冲区的内存池零拷贝改造
NIO中缓冲区是数据传输的基础,JDK通过ByteBuffer实现,Netty框架中并未采用JDK原生的ByteBuffer,而是构造了ByteBuf. ByteBuf对ByteBuffer做了大量的 ...