【问题标题】:do something every (n) seconds in loop在循环中每 (n) 秒做一次
【发布时间】:2017-09-11 13:15:31
【问题描述】:

我在 PHP (windows) 中有 CLI 应用程序

我有循环,我希望在该循环中每 (n) 秒运行一次,但不使用 睡眠(我不能停止脚本,因为它的套接字循环)来检查一些东西。

怎么做?

【问题讨论】:

  • 你为什么不想使用sleep()?
  • 您可以检查时差。 if ($last_time-time() > $n) {...},并在该条件为真时更新 $last_time。
  • 您应该尝试自己编写代码。在doing more research 之后,如果您有问题发布您尝试过的方法,并清楚地解释什么不起作用,并提供a Minimal, Complete, and Verifiable example。阅读How to Ask 一个好问题。请务必take the tour 并阅读this。
  • 我无法入睡,因为它是套接字循环
  • 你不能同时运行一个单独的脚本,它每 X 秒执行一次睡眠并独立于当前脚本吗?我怀疑有没有办法在同一个脚本中每隔 X 秒“中断”一次正在运行的 PHP 脚本。

标签: php loops timer


【解决方案1】:

好的:)

$last_time = time();

while(true) {

if(time()-$last_time > 10) {
 echo 'ok!';
 $last_time = time();
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2018-01-06
    • 2013-07-12
    • 2016-06-19
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多