Azkaban Schedule详解
在Linux的Crontab和Azkaban中都需要使用schedule的功能,所以我们有必要介绍CronTrigger 的使用。
简介
cron 是一个已经存在很久的Unix工具,所以它的schedule能力既强大,又稳定。 CroTrigger使用cron expressions,它可以创建执行schedule。
格式
一个cron expression由空格分割的6-7个字段构成。字段可以包含任何允许设置的字段,同时也可以将各种允许的字段结合在一起。允许的字段如下:
特殊字符
字符表示被用于在域中选择所有值。例如:* * * * * 在分钟字段中的"*"就意味着每一分钟。
?字符表示不指定值。例如:0 0 10 * * ? 每月的10号。
/字符经常用于指定增量。例如: 0/1 * * * * ? 每分钟。
L字符表示最后的意思。例如:day-of-month域中的L表示该月的最后一天(0 0 L * ?),day-of-week域中的L表示该周的最后一天(0 0 * 6L ?)。
W字符常用于指定离给定日期最近的工作日(Monday-Friday)。
字符可用于"日"和"周几"字段。例如:6#3表示该月第三个周五,其中6表示周五而#3表示该月第三个。
在线工具:tool.lu/crontab
常用案例
0 0 1 * * ? 表示每天凌晨1:00
0 30 1 ?* * 表示每天凌晨1:30
0 30 1 * * ? 2020 表示2020每天早上1:00点触发
0 * 1 * * ? 表示每天晚上凌晨1点到1点59分每分钟触发一次
0 0/5 1 * * ? 表示每天晚上凌晨1点到1点55分每5分钟触发一次
0 0/5 1,4 * * ? 表示每天晚上凌晨1点至1点55和4点至4点55两个时间段内每5分钟触发一次
0 0-5 1 * * ? 表示每天凌晨1:00至1:05每分钟触发一次
0 0 1 ? * MON-FRI 表示每个周一、周二、周三、周四、周五的凌晨1点触发
0 0 1 1 * ? 表示每月1号的凌晨1点触发
0 0 1 L * ? 表示每月的最后一天的凌晨1点触发
0 0 1 ? * 6L 表示每月最后一个星期五的凌晨1点触发
0 0 1 ? * 6#1 表示每个月第一个星期五的凌晨1点触发