我有一个脚本PHP,它在MYSQL服务器上做请求,我想每天执行一次!在不同的时间每天执行一个php脚本
我第一次自己执行脚本。 我希望脚本在执行结束时选择一天中的一个随机时间,在上午8:30到下午7:30之间,并在此时自动重新执行。可能吗?
要选择一个随机时间我已经编码是这样的:
$tomorrow = new DateTime(date('Y-m-d H:m:s', time()+86400));
$tomorrow1 = $tomorrow -> setTime(8,30,0);
$tomorrow2 = $tomorrow -> setTime(19,30,0);
$min_time = strtotime($tomorrow1->format('Y-m-d H:m:s'));
$max_time = strtotime($tomorrow2->format('Y-m-d H:m:s'));
$rand_time = rand($min_time, $max_time);
但后来我不知道怎么在这个时候脚本做一个自动执行。也许我可以这样暂停:
sleep ($rand_time - time());
但是我不知道该如何重新执行脚本。我不认为睡眠是最好的解决方案。你是否有办法,如何做到这一点?
您可以使用cron执行此任务。运行脚本一次和完成脚本之前,应测试crontab,如果当前脚本已经存在它列出并删除脚本,如果需要。然后在新的执行时间内将脚本再次添加到cron中。 –
使用linux? http://stackoverflow.com/questions/9049460/cron-jobs-and-random-times-within-giving-hours – rlanvin
或在7:30通过cron启动它,让它在0到1小时之间随机休眠,然后执行任务。 – syck