当我们的业务需要配置一些crontab的时候,如果这个crontab不能同时在多台服务器上执行,还想做到基本的高可用(起码挂一台服务器不会影响到任务)
那么,我们就需要把任务分散到多台服务器上执行了。就是 a-b/2 a-b/3的配置方式。
例如:
0-58/2 配置在服务器A上,则0,2,4,6… 58分会执行此任务
1-59/2 配置在服务器B上,则1、3、5、7… 59分会执行此任务
这样,一个任务就会在两台机器上,轮流执行,执行间隔1分钟。当有一台服务器坏掉的时候,任务的执行时间为2分钟。
这里有人就会说,那我的任务必须要求一分钟执行一次怎么办呢?
答:设计的不合理,重新设计你的任务!
下边是一些例子:
crontab配置(解释:a、b、c等为命令的简写)
0-57/3 * * * * a
1-58/3 * * * * b
2-59/3 * * * * c
13-23/3 * * * * d
13-23/4 * * * * e
13-23/5 * * * * f
13-23/6 * * * * g
13-23/7 * * * * h
13-23/8 * * * * j
结果(分钟数)(命令 在哪写分钟执行了)
a 0 3 6 … 57
b 1 4 7 … 58
c 2 5 8 … 59
d 13 16 19 22
e 13 17 21
f 13 18 23
g 13 19
h 13 20
j 13 21