重试机制在实际编程场景中应用比较场景,比如你的任务在请求一个正在写入数据但不确定什么时间会完成的文件,可能就需要通过尝试机制间隔一段时间重新执行任务。
以下 shell 脚本是实现重试机制的模板:
#!/bin/sh count=0 #记录重试次数 flag=0 # 重试标识,flag=0 表示任务正常,flag=1 表示需要进行重试 while [ 0 -eq 0 ] do echo ".................. job begin ..................." # ...... 添加要执行的内容,flag 的值在这个逻辑中更改为1,或者不变...... # 检查和重试过程 if [ flag -eq 0 ]; then #执行成功,不重试 echo "--------------- job complete ---------------" break; else #执行失败,重试 count=$[${count}+1] if [ ${count} -eq 6 ]; then #指定重试次数,重试超过5次即失败 echo 'timeout,exit.' break fi echo "...............retry in 2 seconds .........." sleep 2 fi done