服务器定时任务的执行失败重新尝试5次

在某个定时爬取数据的任务中,因为执行任务时各种原因存在使得任务在第一次执行的时候失败,但是任务脚本并不存在任何问题,因此此时需要设置失败的时候继续重新执行任务。

 

为了解决这个问题,可以使用循环,我的解决逻辑如下:


#循环执行5次

for loop in 1 2 3 4 5

do

       echo“This is the $loop try!”

       pythonmyCrawler.py params  #执行我的定时任务

    if [ ${?}-ne 0 ]; #判断定时任务执行的状态吗是否失败

      then

         if [ $loop -eq 5 ] #在5次尝试都失败后发出报警信息

         then send_error "python myCrawler.py params error and theloop is $loop"

          sleep 10s #在下次执行之前先暂停10s

         exit 1

          fi

          continue #跳出当前循环执行下一次循环任务

      fi

     echo "成功" #成功之后在界面打印成功状态

     break  #成功之后跳出所有循环

  done #for循环结束标志

 

解决这个问题需要关注的是任务的要求:

1.    任务第一次执行会失败,但是再次执行可能会成功,那么需要尝试5次

2.    如果第5次尝试仍旧失败,需要发出报警信息

3.    任务执行失败的原因可能是任务之间执行的太紧凑,可以设置任务之间的执行间隔即sleep一段时间

4.    如果任务在某次成功之后,不再执行其它的循环,即循环要及时停止

你可能感兴趣的:(读万卷书,行万里路)