关于crontab执行的一些思考

crontab是linux系统下,用于设置周期性被执行的指令

一 基本格式

0 0 L * * *

说明:
Linux
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
|    |    +--------------- day of month (1 - 31)
|    +-------------------- hour (0 - 23)
+------------------------- minute (0 - 59)

二 场景1:如果两个定时间隔时间内,脚本没有执行,下一个脚本会启动,怎么办?

这种情况要分情况讨论:
1 数据幂等的,如同队列消息消费一样,允许重复消费
2 数据非幂等的,控制下一次定时执行的启动(即当前脚本执行结束后,在下一个定时点启动下一次脚本),方案很多,redis记录标记,zookeeper注册一个临时节点等,都可以实现

三 场景2:机器负载过高,导致zookeeper临时节点不释放,怎么办?

方案1,修改代码,更改临时节点名称,在其他机器上重新部署执行
方案2,zookeeper cli下删除临时节点,在其他机器上执行脚本

四 场景3:假如我想停掉故障机器,不做其他操作脚本如何正常执行呢?

脚本多机器部署

五 场景4:多机器部署,假如脚本每隔一分钟执行一次,且保证一分钟未执行完其他机器不能执行脚本,怎么办?

每台机器轮流执行,并借助zookeeper的临时节点,当一个机器一分钟内未执行完,其他机器执行时会因临时节点存在,而获取不到权限,无法执行脚本(此时可以预警)

2-59/3 * * * * command
1-58/3 * * * * command
0-57/3 * * * * command
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值