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.

Loading utility...

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 */20in 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表达式的更多相关文章

  1. Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)

    什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定).      这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户 ...

  2. spring框架的定时任务cronExpression表达式详解

    附:cronExpression表达式解释: 0 0 12 * * ?---------------在每天中午12:00触发 0 15 10 ? * *---------------每天上午10:15 ...

  3. 关于cronExpression表达式

    spring 定时任务设置,关于cronExpression表达式: 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1 ...

  4. Quartz.net 定时任务之Cron表达式

    一.cron表达式简单介绍和下载 1.在上一篇博客"Quartz.net 定时任务之简单任务"中,我简单介绍了quartz的使用,而这篇博客我将介绍cron的具体使用(不足之处望大 ...

  5. Quartz在Spring中动态设置cronExpression

    什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文 ...

  6. JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义

    referenc:https://blog.csdn.net/clementad/article/details/42042111 下面介绍几种常用的定时器及其实现方法: 第一种:Timer和Time ...

  7. 【Hadoop离线基础总结】oozie定时任务设置

    目录 简介 概述 oozie定时任务设置 1.拷贝定时任务的调度模板 拷贝hello.sh脚本 3.修改配置文件 4.上传到hdfs对应路径 5.运行定时任务 简介 概述 在oozie当中,主要是通过 ...

  8. Quartz中时间表达式的设置-----corn表达式

    Quartz中时间表达式的设置-----corn表达式 时间格式: <!-- s m h d m w(?) y(?) -->,   分别相应: 秒>分>小时>日>月 ...

  9. Quartz中时间表达式的设置-----corn表达式 (转)(http://www.cnblogs.com/GarfieldTom/p/3746290.html)

    Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y( ...

随机推荐

  1. 起步:Proteus 8 仿真 Arduino 1.8.2

    一.环境准备 1.从Arduino官网或中文社区下载并安装 Arduino IDE 当前最新版1.8.2:http://www.arduino.cn/thread-5838-1-1.html 2.下载 ...

  2. 【Solidity】学习(2)

    address 地址类型 40个16进制数,160位 地址包括合约地址和账户地址 payable 合约充值 balance,指的是当前地址的账户value,单位是wei this指的是当前合约的地址 ...

  3. 管道/FIFO

    管道: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h&g ...

  4. VS code的疑惑之处

    作为一个新手,我充满疑惑 eg:下载了git但无法使用匹配 然后在各位博主的详细解释下知道 VS code更新后的git.path被格式化了: so需要进行路径覆盖. 在这之后我的终端依旧出现问题   ...

  5. AVPass技术分析:银行劫持类病毒鼻祖BankBot再度来袭,如何绕过谷歌play的杀毒引擎?

    背景 近期,一批伪装成flashlight.vides和game的应用,发布在google play官方应用商店.经钱盾反诈实验室研究发现,该批恶意应用属于新型BankBot.Bankbot家族算得上 ...

  6. vue单页应用前进刷新后退不刷新方案探讨

    引言 前端webapp应用为了追求类似于native模式的细致体验,总是在不断的在向native的体验靠拢:比如本文即将要说到的功能,native由于是多页应用,新页面可以启用一个的新的webview ...

  7. JVM之垃圾收集器与内存分配回收策略(二)

    上一篇JVM垃圾收集器与内存分配策略(一),下面是jdk1.7版本的垃圾收集器之间的关系,其中连线两端的两种垃圾收集器可以进行搭配使用,下面来总结一下这些收集器的一些特点以及关系. 一.Serial收 ...

  8. java数据结构面试问题—快慢指针问题

    上次我们学习了环形链表的数据结构,那么接下来我们来一起看看下面的问题, 判断一个单向链表是否是环形链表? 看到这个问题,有人就提出了进行遍历链表,记住第一元素,当我们遍历后元素再次出现则是说明是环形链 ...

  9. WordPress图片或文字添加水印插件:Easy Watermark

    Easy Watermark可以在上传到WordPress媒体库时自动为图像添加水印.您也可以手动为现有图像添加水印(一次全部或每个图像).水印可以是图像,文本或两者. 插件功能 图像水印可以是jpg ...

  10. Django项目添加应用路径

    sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))