From 9d443fbd46888c41dc27db29c226ffcbd4a4190f 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 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BB=B6=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 From e521d14522dc816ab69a782ba5a4a4df855ce696 Mon Sep 17 00:00:00 2001 From: renfenghuan <64941682+renfenghuan@users.noreply.github.com> Date: Fri, 18 Dec 2020 07:07:41 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=E4=B8=BAdefault=5Ftask=E4=B9=9F=E5=A2=9E?= =?UTF-8?q?=E6=B7=BB=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BB=B6=E8=BF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为default_task也增添判断是否添加延迟; 修复替换脚本的一个bug --- docker/default_task.sh | 5 +++++ docker/replaceNode_withRandomSleep.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docker/default_task.sh b/docker/default_task.sh index 0ba1dafd..58d937ca 100644 --- a/docker/default_task.sh +++ b/docker/default_task.sh @@ -107,5 +107,10 @@ 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 "加载最新的定时任务文件..." crontab $mergedListFile diff --git a/docker/replaceNode_withRandomSleep.sh b/docker/replaceNode_withRandomSleep.sh index f0c0441c..42949ee5 100644 --- a/docker/replaceNode_withRandomSleep.sh +++ b/docker/replaceNode_withRandomSleep.sh @@ -1 +1 @@ -sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_club_lottery.js\)/!s/node/sleep \$((RANDOM % $RANDOM_DELAY_MAX)); node/g" $1 +sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_club_lottery.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $1 From c49cf0766ed41ad3bbad77804a9bf3b0d409123c Mon Sep 17 00:00:00 2001 From: renfenghuan <64941682+renfenghuan@users.noreply.github.com> Date: Fri, 18 Dec 2020 08:06:10 +0000 Subject: [PATCH 3/5] Update replaceNode_withRandomSleep.sh --- docker/replaceNode_withRandomSleep.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/replaceNode_withRandomSleep.sh b/docker/replaceNode_withRandomSleep.sh index 42949ee5..a0aa3ba8 100644 --- a/docker/replaceNode_withRandomSleep.sh +++ b/docker/replaceNode_withRandomSleep.sh @@ -1 +1 @@ -sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_club_lottery.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $1 +sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_joy_reawrd.js\|jd_joy_steal.js\|jd_joy_feedPets.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $1 From 84f54a8d6a0f2895a8aa01ecc9d214d17ca270ad Mon Sep 17 00:00:00 2001 From: renfenghuan <64941682+renfenghuan@users.noreply.github.com> Date: Fri, 18 Dec 2020 10:45:52 +0000 Subject: [PATCH 4/5] fix bug in the shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 少写了个分号; 不能用sh,要用source,否则无法继承环境变量 --- docker/default_task.sh | 4 ++-- docker/docker_entrypoint.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/default_task.sh b/docker/default_task.sh index 58d937ca..b04ebeee 100644 --- a/docker/default_task.sh +++ b/docker/default_task.sh @@ -107,9 +107,9 @@ 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 +if [ $RANDOM_DELAY_MAX -ge 1 ]; then echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中... " - sh replaceNode_withRandomSleep.sh $mergedListFile + source replaceNode_withRandomSleep.sh $mergedListFile fi echo "加载最新的定时任务文件..." diff --git a/docker/docker_entrypoint.sh b/docker/docker_entrypoint.sh index 1f774043..002b9ff5 100644 --- a/docker/docker_entrypoint.sh +++ b/docker/docker_entrypoint.sh @@ -128,9 +128,9 @@ 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 +if [ $RANDOM_DELAY_MAX -ge 1 ]; then echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中... " - sh replaceNode_withRandomSleep.sh $mergedListFile + source replaceNode_withRandomSleep.sh $mergedListFile fi echo "Load the latest crontab task file..." From 63fab722dcbefca08c6c6583232b2d169efda3f7 Mon Sep 17 00:00:00 2001 From: renfenghuan <64941682+renfenghuan@users.noreply.github.com> Date: Fri, 18 Dec 2020 12:46:31 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=BB=B6=E8=BF=9F?= =?UTF-8?q?=E6=96=B9=E9=9D=A2=E7=9A=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/example/default.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/example/default.yml b/docker/example/default.yml index 9f9f8759..24c89c13 100644 --- a/docker/example/default.yml +++ b/docker/example/default.yml @@ -46,7 +46,8 @@ jd_scripts: # 例: JD_DEBUG=false - JD_DEBUG= - #如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 1 - RANDOM_DELAY_MAX 秒。如果不设置此项,则不使用延迟。 + #如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。 #并不是所有的脚本都会被启用延迟,因为有一些脚本需要整点触发。延迟的目的有两个,1是降低抢占cpu资源几率,2是降低检查风险(主要是1) + #填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数,执行延迟的意思。 - RANDOM_DELAY_MAX=