如果我明白你要找什么,你将需要做一些有点凌乱,像有一个cron作业,运行一个bash脚本随机运行时间…这样的东西:
crontab:
0 9 * * * /path/to/bashscript
和/ path / to / bashscript:
#!/bin/bash maxdelay=$((14*60)) # 14 hours from 9am to 11pm,converted to minutes for ((i=1; i<=20; i++)); do delay=$(($RANDOM%maxdelay)) # pick an independent random delay for each of the 20 runs (sleep $((delay*60)); /path/to/PHPscript.PHP) & # background a subshell to wait,then run the PHP script done
一些注意事项:这种方法有点浪费资源,因为它在上午9点激发20个后台进程,每个等待一个随机的分钟数(长达14小时,即11pm),然后启动PHP脚本和退出。此外,由于它使用随机分钟数(而不是秒),开始时间不是随机的,因为它们可能是。但是$ RANDOM只能达到32,767,而在上午9点到下午11点之间有50,400秒,所以随机选择秒数会更复杂一些。最后,由于开始时间是随机的并且彼此独立,所以可能(但不是很可能)同时启动脚本的两个或多个实例。