我有一个while(true)
用来运行的脚本,所以它会永远运行直到它死掉。我希望能够让它每 4 分钟回显一次,我该怎么做?该脚本在命令提示符下运行,它使用它,while(true)
所以它令人困惑,而且我不知道如何让它每 4 分钟执行一次。我怎样才能让它每 4 分钟回声一次,而仍在 a 中while(true)
?
问问题
24757 次
3 回答
7
你可以试试
while(true)
{
sleep(240); // sleep for 240 sec
echo " Hello World" ;
}
或者
$time = time();
while ( true ) {
/*
* Play Some Ball
*/
if ((time() - $time) >= 240) {
echo date("Y:m:d g:i:s"), PHP_EOL;
$time = time();
}
sleep(2);
}
输出测试Time = 2 sec, Sleep = 1 sec
2012:10:14 12:50:56
2012:10:14 12:50:58
2012:10:14 12:51:00
2012:10:14 12:51:02
2012:10:14 12:51:04
2012:10:14 12:51:06
2012:10:14 12:51:08
2012:10:14 12:51:10
2012:10:14 12:51:12
2012:10:14 12:51:14
于 2012-10-13T22:45:40.530 回答
3
使用sleep方法实际上会使您的脚本停止运行。如果这是你想要发生的,我不是 100%。
解决此问题的另一种方法是比较每次迭代中最后一个“echo”命令的时间戳。
$echo_time = time();
$interval = 4*60;
while(true){
if ($echo_time + $interval >= time()){
echo "$interval seconds have passed...";
$echo_time = time(); // set up timestamp for next interval
}
// other uninterrupted code goes here.
}
这将允许循环中的代码继续运行,并且仅在每次迭代开始时检查时间。
于 2012-10-13T22:48:12.003 回答
1
while(true) { ... }
尝试添加一个sleep() 参数函数循环。
$sleep = 4*60;
while(true)
{
# waiting...
sleep($sleep);
# work after 240 mins
}
于 2012-10-13T22:47:02.223 回答