如果最后一个脚本在一分钟内没有执行,则启动新脚本

如果最后一个脚本在一分钟内没有执行,则启动新脚本

我的 cron 选项卡中有太多条目,无法每半小时运行一次脚本(超过 50 个脚本)。

每半小时所有脚本将同时执行,因此由于一次启动超过 50 个进程,服务器负载将会增加。

为了克服这个问题,我设置了 crontab 来执行一个 shell 脚本,并且在这个 shell 脚本中,所有脚本都将一一执行。

例如allscript.sh将从 crontab 执行

allscript.sh

#!/bin/bash
a.sh
b.sh
c.sh
d.sh
.
.
.
ay.sh

但在逐个执行时,如果一个脚本花费太多时间(5 分钟),则其他脚本必须等待特定时间。因此,我想在此脚本中设置,如果任何进程花费超过一分钟,则其他脚本的执行将自动开始。

答案1

使用作业队列。您可能要做的就是设置一个作业队列,每个核心一个线程。这允许所有作业在一个操作中排队+如果一项作业比其他作业花费更长的时间,那么其他作业将在其他线程中运行。

有很多方法可以实现这一点。

以下是我对您有帮助的一些搜索。

ubuntu作业队列

bash 作业队列

相关内容