没有脚本暂停/延迟的PHP计时器

时间:2010-06-22 02:55:00

标签: php timer delay

所以我只想把这个快速而又脏的模块写入一个占用当前时间的程序,回显一个字符串,然后等待x分钟并回显另一个字符串。唯一的问题是,这个小模块是否会停止程序的其余部分,直到它完成为止。有什么方法吗?

2 个答案:

答案 0 :(得分:0)

您可以复制当前正在运行的进程,让1个进程等待,另一个进行它必须执行的操作。

要分叉PHP进程,您必须使用pcntl_fork

答案 1 :(得分:0)

当然分叉可以解决问题,但为什么不在PHP中使用ticks functionality

考虑这个例子:

declare(ticks=1);

function tick() {
   // check if the interval is correct before proceding
   $mem = memory_get_usage(true);
   echo "Using $mem bytes right now";
}

register_tick_function('tick');

// do all kinds of things in your main program here
while(true) {
   usleep(50000);
}

在休眠时,它会定期调用tick函数,而不必手动调用它。唯一需要注意的是,如果特定操作需要很长时间才能完成(例如数据库查询),则在此操作完成之前,不会触发刻度。