我有一个PHP脚本来解析来自JSON url的实时分数,然后检查是否有一些分数发生变化,它会调用另一个PHP脚本来将通知推送到IOS设备。
我的问题是如何让第一个脚本每20秒运行一次。
答案 0 :(得分:3)
这取决于您使用的主机操作系统。对于linux / unix /等。用于安排任务的首选工具是cron。对于Windows或Mac或类似的东西,还有其他内置调度程序。
使用cron,安排每分钟运行的任务可能如下所示:
* * * * * /path/to/command
然而,粒度似乎只是分钟。因此,如果没有更精细的任务调度程序,您可能需要在内部处理20秒的延迟。
一个想法可能是将任务包装在运行命令的脚本中,休眠20秒,再次运行命令,休眠20秒,然后再次运行命令。然后cron作业将调用该包装脚本。我的bash有点生疏,但想法看起来像这样:
/path/to/command
sleep 20
/path/to/command
sleep 20
/path/to/command
答案 1 :(得分:1)
$total_time = 0;
$start_time = microtime(true);
while($total_time < 60)//run while less than a minute
{
//DoSomething;
echo $total_time."\n";
sleep(20);//wait amount in seconds
$total_time = microtime(true) - $start_time ;
}
将此添加到cronjob以便每分钟运行一次。
答案 2 :(得分:0)
也许你可以尝试sleep
while(1) {
exec('php path/to/script.php');
sleep(20);
}
答案 3 :(得分:0)
通常cronjob
适用于此类任务。请看这里:http://www.thegeekstuff.com/2011/07/php-cron-job/
如果这不适用,您可以为PHP CLI http://php.net/manual/en/features.commandline.php编写脚本,这样可以无限运行。只需将while(true)循环与sleep()放在一起,然后使用php命令运行它,如> php yourscript.php