Performance crontab,计划作业在最短时间内按顺序运行

Performance crontab,计划作业在最短时间内按顺序运行,performance,scheduled-tasks,crontab,Performance,Scheduled Tasks,Crontab,提供3个按顺序运行的作业 jobA --> jobB --> jobC ~20min ~25min ~5m 应在前一个完成时执行。虽然已知合理的持续时间,但个别持续时间可能会有所不同。。 可以使用crontab将此过程保持在执行循环中,但是如何优化它以尽可能快地运行序列呢? 作业/流程不直接沟通 目前我在crontab中安排了这3个作业,所以jobA在第0分钟开始,jobB在第30分钟开始,jobC在第40分钟开始。但在大多数情况下,jobB和jobC可以

提供3个按顺序运行的作业

jobA  -->  jobB  -->  jobC
~20min     ~25min      ~5m
应在前一个完成时执行。虽然已知合理的持续时间,但个别持续时间可能会有所不同。。 可以使用
crontab
将此过程保持在执行循环中,但是如何优化它以尽可能快地运行序列呢? 作业/流程不直接沟通

目前我在crontab中安排了这3个作业,所以jobA在第0分钟开始,jobB在第30分钟开始,jobC在第40分钟开始。但在大多数情况下,jobB和jobC可以更早开始

我们的想法是每小时运行一次这个序列,尽可能快。

一种方法——创建一个脚本:driver.shl:

/path/to/JobA [parameters]
if [ $? -ne 0 ]; then
   echo 'error' | mailx -s 'job JobA failed ' me@mycompany.com
/path/to/JobB [parameters]
if [ $? -ne 0 ]; then
   echo 'error' | mailx -s 'job JobB failed ' me@mycompany.com
/path/to/JobC [parameters]
if [ $? -ne 0 ]; then
   echo 'error' | mailx -s 'job JobC failed ' me@mycompany.com

计划driver.shl在crontab中每小时运行一次。

Cron使用shell执行命令。这样运行一个长命令就足够了

jobA && jobB && jobC
仅当
jobA
成功时,使用
&
将运行
jobB

独立安排这些作业并不保证A在B之前完成,或C在B之前完成