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. c语言宏开关 使用

    /* * 宏的写法,宏的作用域,当前位置开始到大括号结束,如果没有大括号,到文件结尾. */ #include <stdio.h> //#define HELLO int main(int ...

  2. OPC转发阿里云alink工具

    这个最近还在做 2019-04-24 今天抽空吧基本mqtt上传,OPC遍历,导出物模型功能先做了 上报操作日志,上报错误信息,导入参数,导出参数还没做 有需要可以联系微信NBDX123

  3. VS2017 处理 Rdlc , microsoft report viewer 轻量级报表处理(WPF CS客户端版本)

    VS 2017没有安装处理Rdlc的包,需要手动安装: 点击主菜单中Tools 下拉菜单中 扩展和升级: 点选左侧Online  ,然后在右侧输入rdlc进行查询,然后 Download 下载安装 M ...

  4. Node.js 开发指南

    1.Node.js 简介 Node.js 其实就是借助谷歌的 V8 引擎,将桌面端的 js 带到了服务器端,它的出现我将其归结为两点: V8 引擎的出色: js 异步 io 与事件驱动给服务器带来极高 ...

  5. table设置上下左右边距不一样-html

    新手上路,刚刚自学html,仅作为记录学习历程用,有需要的可以参考. 1.边距相同时 <table align="center" cellpadding="15re ...

  6. nodejs常用代码片段

    自动创建目录(多级) 相比起使用递归创建,调用 sheljsl 模块简单得多 const shell = require('shelljs') const fs = require('fs') if ...

  7. Spring中Model、ModelMap及ModelAndView之间的区别+传递参数

    org.springframework.ui.Model(接口)传递数据,Spring框架自动创建它的一个实现类,如BindingAwareModelMap org.springframework.u ...

  8. TensorFlow中的变量和常量

    1.TensorFlow中的变量和常量介绍 TensorFlow中的变量: import tensorflow as tf state = tf.Variable(0,name='counter') ...

  9. 去掉word页眉上横线的技巧

    页眉下面会出现一条横线 双击页眉进入页眉页脚编辑状态.选定页眉内容.点击菜单栏[开始]-[清除一切格式]图标. 效果图: 方法二 进入页眉编辑状态,同时自动切换到了“设计”选项卡.同时注意观察,在页眉 ...

  10. jquery获取radio选中值及遍历

    使用jquery获取radio的值,最重要的是掌握jquery选择器的使用,在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来筛选,比如有以下的一些radio项:1.& ...