我的 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
使用作业队列。您可能要做的就是设置一个作业队列,每个核心一个线程。这允许所有作业在一个操作中排队+如果一项作业比其他作业花费更长的时间,那么其他作业将在其他线程中运行。
有很多方法可以实现这一点。
以下是我对您有帮助的一些搜索。