From 95c373a89fc9ab04b755afa27e5579e77d82631b Mon Sep 17 00:00:00 2001 From: renfenghuan <64941682+renfenghuan@users.noreply.github.com> Date: Fri, 18 Dec 2020 06:41:37 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1=E5=BB=B6?= =?UTF-8?q?=E8=BF=9F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 自动探测RANDOM_DELAY_MAX变量,如果设置了,则利用sed替换除必须固定时间运行的脚本以外的所有脚本任务的cron命令,在运行node前先运行sleep --- docker/docker_entrypoint.sh | 5 +++++ docker/example/default.yml | 3 +++ docker/replaceNode_withRandomSleep.sh | 1 + 3 files changed, 9 insertions(+) create mode 100644 docker/replaceNode_withRandomSleep.sh diff --git a/docker/docker_entrypoint.sh b/docker/docker_entrypoint.sh index 53c6c872..1f774043 100644 --- a/docker/docker_entrypoint.sh +++ b/docker/docker_entrypoint.sh @@ -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 diff --git a/docker/example/default.yml b/docker/example/default.yml index d6cdfe8d..9f9f8759 100644 --- a/docker/example/default.yml +++ b/docker/example/default.yml @@ -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= diff --git a/docker/replaceNode_withRandomSleep.sh b/docker/replaceNode_withRandomSleep.sh new file mode 100644 index 00000000..f0c0441c --- /dev/null +++ b/docker/replaceNode_withRandomSleep.sh @@ -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