【发布时间】:2019-08-12 23:06:31
【问题描述】:
我这里有这个while循环:
$payment_timeout = time() + 300;
while ( time() < $payment_timeout ) {
if (is_valid()) {
continue;
}
break;
}
通过 AJAX 函数调用此循环。计划是等到客户付钱。为了检查这一点,我构建了一个is_valid() 函数,它对数据库进行检查以检查订单是否已支付。
问题是在这种情况下我的数据库会因为请求的数量而崩溃。所以我正在寻找一种方法来每隔10 seconds 左右执行一次检查,而其他时间只是继续。
有没有办法做到这一点?
【问题讨论】:
-
您在寻找sleep() 函数吗?请小心使用。例如,您可以每 10 秒发起一次 AJAX 调用。
-
反过来呢:使用观察者模式。当数据库更改时,您将更改发送给所有侦听器。
-
@Mr.Jo 你不需要 websockets 来使用 XHR(通过 Javascript)进行简单的基于间隔的轮询
-
@Mr.Jo 请在下面查看我的答案,我认为它解决了(几乎,如果不是全部)您在此处提到的问题。
标签: php loops while-loop