cakephp彗星usleep阻止一切

下面是我最终使用成功的彗星实现的代码.

$lastmodif = isset($this->params['form']['timestamp']) ? $this->params['form']['timestamp'] : 0;
$currentmodif = $already_updated[0]['Update']['lastmodified'];

while ($currentmodif <= $lastmodif)
{
    usleep(5000000);
    clearstatcache();
    $already_updated_new = $this->Update->find('all',array
    (
        'conditions' => array
        ( 
            'Update.receiver_id' =>  $this->Auth->user('id'),
            'Update.table_name' =>  "request_responses"
        )
    ));
    $currentmodif = $already_updated_new[0]['Update']['lastmodified'];
}

$already_updated [0] [‘Update’] [‘lastmodified’]是获取表的最后更新时间戳的查询结果.

在上面的代码中,$lastmodif和$currentmodif是每次成功的彗星响应后传递的时间戳.

但现在的问题是,当我点击同一页面上的其他链接时,没有任何反应,但在等待这么长时间后重定向.

我认为usleep阻止了其他HTTP请求.

我正在使用MysqL和cakePHP请大家指导我该怎么办才能解决这个问题.

我已经尝试在调用页面时刷新,但它显示无法修改标头错误,因为已经发送了输出.

谢谢.

解决方法:

我几次遇到过类似的情况.看起来Session被您的睡眠脚本阻止了.

如何在CakePHP解决它:
调用session_write_close();在脚本的开头.
没有办法通过Cake的Session Component或Helper来做到这一点
注意:如果脚本中的某些内容使用了session – Cake将重新打开会话并挂起所有再次使用相同会话的请求.在这种情况下,您需要在睡眠前或任何需要花费大量时间才能完成的操作之前关闭会话

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...