PHP 长轮询 - "long"应该有多长?

标签 php ajax performance long-polling

在 PHP 中使用长轮询时,例如

$start_time = time();
while ((time() - $start_time) < 30) {
if ($db->getNewStuff()->rows > 0) {
    $response = "new stuff!";
    break;
}
usleep(1000000);
}
echo $response;

你如何评价,你“投票”了多久?在这个例子中,我选择了 30 秒,因为……好吧,我什至不知道为什么。

使用更长的民意调查(几分钟或类似时间)会产生什么影响? Apache 会崩溃吗?我的应用程序会变得迟缓/卡住/降低性能吗?

此外:进程应该使用多长时间?

最佳答案

您的 PHP 脚本可能不会存在那么久,具体取决于 time limit .所以,一定要(重新)设置时间限制。否则,我认为增加次数没有任何问题。

至于usleep应该多长,那是你需要自己去benchmark的。较短的微 sleep 会增加服务器负载,但会更快地找到结果。什么是合适的在很大程度上取决于您的应用程序的其余部分和您的资源。您甚至可能希望根据服务器负载改变微休眠时间(即,在服务器负载高时使其休眠时间更长)。

关于PHP 长轮询 - "long"应该有多长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608904/

相关文章:

javascript - $.ajax 成功 : value is always undefined

php - 使用 PHP 时出现奇怪的语法错误 MySQL 错误

php - 带有获取参数的codeigniter分页url

php - 登录时匹配部门

java - 我可以聚焦php来在php中键入变量类吗?

php - 非常慢的 mysql 请求 + php

javascript - 获取 php 数组后将其转换为 javascript

javascript - 通过jquery ajax检查图像是否存在?

c++ 算法 : searching for a subset of a 'list' , 无序

mysql - 最好使用哪种 SQL