diff --git a/docker/default_task.sh b/docker/default_task.sh index 0ba1dafd..b04ebeee 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 , 设置延迟任务中... " + source replaceNode_withRandomSleep.sh $mergedListFile +fi + echo "加载最新的定时任务文件..." crontab $mergedListFile diff --git a/docker/docker_entrypoint.sh b/docker/docker_entrypoint.sh index 53c6c872..002b9ff5 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 , 设置延迟任务中... " + source 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..24c89c13 100644 --- a/docker/example/default.yml +++ b/docker/example/default.yml @@ -46,4 +46,8 @@ jd_scripts: # 例: JD_DEBUG=false - JD_DEBUG= + #如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。 + #并不是所有的脚本都会被启用延迟,因为有一些脚本需要整点触发。延迟的目的有两个,1是降低抢占cpu资源几率,2是降低检查风险(主要是1) + #填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数,执行延迟的意思。 + - RANDOM_DELAY_MAX= diff --git a/docker/replaceNode_withRandomSleep.sh b/docker/replaceNode_withRandomSleep.sh new file mode 100644 index 00000000..a0aa3ba8 --- /dev/null +++ b/docker/replaceNode_withRandomSleep.sh @@ -0,0 +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