【问题标题】:Long Polling, Apache Stuck when sleep() due to usage of sessions长时间轮询,由于使用会话,Apache 在 sleep() 时卡住
【发布时间】:2012-04-05 20:24:17
【问题描述】:

更新:会话的使用调用投票页面时的问题,因为它已经打开了一次。

我正在对我的网络应用进行长时间投票。

现在我只是在做类似的事情:(最终目标是先查询然后休眠,然后查询,然后休眠,...)

sleep(10);
echo 'ok';

在我的服务器端(只是为了测试它)

问题:当我尝试加载另一个页面时,它总是需要 10 秒

【问题讨论】:

  • Apache 有多少线程和进程?您很有可能正在使用 Apache 的所有资源,并且它必须等到请求完成才能提供新的资源。
  • 是的。 sleep() 将捆绑 Apache 工作者。拒绝服务自己不存在的好方法。
  • 啊,好吧...另一种不使用睡眠的方法,目标是不时查询数据库以检查是否有新内容,但在我的查询之间我应该我们一些东西就像睡眠一样,如果不是服务器会...爆炸;)
  • 您在使用会话吗?默认的基于文件的处理程序将在脚本使用会话文件时锁定会话文件,从而阻止任何并行会话使用请求的发生。
  • @jeron:使用session_write_close() 在休眠脚本中放弃会话。 $_SESSION 数据仍可供读取。

标签: php jquery mysql long-polling


【解决方案1】:

使用 session_write_close() 在休眠脚本中放弃会话。 $_SESSION 数据仍可供读取。 马克 B

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2018-05-05
    • 2018-10-23
    • 1970-01-01
    • 2013-03-31
    • 2013-12-11
    相关资源
    最近更新 更多