cron表达式

cron原来是UNIX的工具之一,主要用于进行任务调度,cron核心使用的就是cron表达式来处理任务调度,一个cron表达是由6~7个域组成并且以空格分隔的字段串,以下为一个简单的cron表达式:10 * * * * ?,表示每分钟的第10秒将会触发。

一个完整的cron表达式总共有7个域(以空格分隔),从左到右表示秒、分、小时、月份中的日期、月份、星期中的日期和年份,其中年份域为可选项,例如有以下cron表达式:1 2 3 4 5 ? 2013,该表达式共有7个域,以空格分隔,该表达式2013年5月4日03时2分1秒,在该表达式中,第6个域(星期中的日期)使用了问号,表示并不需要关心该域,由于该表达式指定了第4个域(月份中的日期),因此此处使用问号,可以理解为不关心5月4日是星期几。以下描述了cron表达式中的符号及其作用:

	*:允许该域使用全部的值。假设在秒域的值为10且分钟域为*,那么意味着每一分钟的第10秒将会符合表达式条件。
	?:只允许出现在第4个域(月份中的日期)和第6个域(星期中的日期),表示不关心该域的取值,由于两个域取值可能存在冲突,因此为不关心取值的域使用该符号。
	-:该符号表示范围,假设将第3个域(小时)设置为10-12,则表示10点到12点。
	,:该符号表示一个域内并列的多个值,例如第4个域(月份中的日期)值为2,4,8,表示2号、4号和8号会触发。
	/:使用该符号设置步长,假设将第1个域(秒)设置为5/15,表示从第5秒开始,步长为15,即第5、20、35、50秒时均会触发。
	L:英文Last的缩写,如果出现在第4个域(月份中的日期),则为每个月的最后一天,如果出现在第6个域(星期中的日期),则表示该星期的最后一天(周六),如果该符号出现在某个值后,如第6个域值为6L,则表示该月的最后一个星期5.
	W:英文weekday的缩写,表示周一到周五(工作日),该符号只能出现在第4个域(星期中的日期)并且只能与其他值组合使用,如15W,则表示该月中与15号最接近的工作日。另外,L和W可以在第4个域中混合使用,表示该月的最后一个工作日。
	#:该符号只能出现在第6个域(月份中的日期),表示该月的第几天,如果设置为#5,表示该月的第5天;如果设置为4#3,则前面的4表示星期中的日期,即4#3表示该月的第3个星期三(7是周6)。

各个符号允许出现的域以及第个域的取值范围

秒:必选项,取值范围0~59,允许出现的符号有“,- *  / ”。
分钟:必选项,取值范围0~59,允许出现的符号有“,- *  / ”。
小时:必选项,取值范围0!23,允许出现的符号有“,- *  / ”。
月份中的日期:必选项,取值范围为1~31,允许出现的符号有“,-  *  /  ”。
月份:必选项,取值范围为1~12或者月份的英文缩写,允许出现的符号有“ , - * / ”。
星期中的日期:必选项,取值范围为1~7或者英文缩写,允许出现的符号有“ , -  *  /  L  #  ”。
年份:非必选项,取值范围为1970~2099,允许为空值,允许出现的符号有“ , - * /”。

	* * 18 ? 1,2,3,4,5   表示周一到周五的18点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值