添加任务延迟功能

自动探测RANDOM_DELAY_MAX变量,如果设置了,则利用sed替换除必须固定时间运行的脚本以外的所有脚本任务的cron命令,在运行node前先运行sleep
This commit is contained in:
renfenghuan
2020-12-18 06:41:37 +00:00
parent 961c1cc8b4
commit 219d8412be
3 changed files with 9 additions and 0 deletions

View File

@@ -128,6 +128,11 @@ if [ $(grep -c "default_task.sh" $mergedListFile) -eq '0' ]; then
echo "52 */1 * * * sh /scripts/docker/default_task.sh |ts >> /scripts/logs/default_task.log 2>&1" >>$mergedListFile
fi
if [ $RANDOM_DELAY_MAX -ge 1 ] then
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中... "
sh replaceNode_withRandomSleep.sh $mergedListFile
fi
echo "Load the latest crontab task file..."
echo "加载最新的定时任务文件..."
crontab $mergedListFile

View File

@@ -46,4 +46,7 @@ jd_scripts:
# 例: JD_DEBUG=false
- JD_DEBUG=
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 1 - RANDOM_DELAY_MAX 秒。如果不设置此项,则不使用延迟。
#并不是所有的脚本都会被启用延迟因为有一些脚本需要整点触发。延迟的目的有两个1是降低抢占cpu资源几率2是降低检查风险主要是1
- RANDOM_DELAY_MAX=

View File

@@ -0,0 +1 @@
sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_club_lottery.js\)/!s/node/sleep \$((RANDOM % $RANDOM_DELAY_MAX)); node/g" $1