#!/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
我也在寻找同样的问题,对我来说,最好的解决方案是在服务器端创建一个调度(通过编程语言来实现非常简单) ,用这些任务填充一个 db 表,其中包含两列: run _ time 和 status (new | Processing)。因此,我的 cron 每分钟运行一次,并找到需要完成的作业(status = new and running time < = now ())。
非常简单,而且有一个巨大的优点: 在这种情况下,我可以为它制作一个接口,看看会发生什么..。