Performance crontab,计划作业在最短时间内按顺序运行
提供3个按顺序运行的作业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可以
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之前完成