为了发出长轮询(彗星)推送请求,将 PHP 中的 max_execution_time 更改为 5 分钟之类的值是否不好?
我正在尝试制作一个类似于 Facebook 的半实时通知系统,为此我期待使用长轮询而不是无意识的轮询(每 N 秒轮询一次)。
是的,我没有使用 Apache,我使用的是 Nginx,它可以处理这种类型的轮询。
现在出现了一个问题,我读到的有关长轮询主题的所有教程都显示了示例,其中如果没有返回数据,ajax 请求将在 30-50 秒内超时,然后再次轮询,这对我来说毫无意义,因为以前我曾经每 30 秒轮询一次服务器以检查通知,长轮询如何使情况变得更好?它仍然会每 30 - 50 秒重新连接一次。
出于这个原因,我认为可以选择将 max_execution_time 从默认的 60 更改为 300 或 400,然后轮询请求,该请求在超时和重新连接之前等待至少 5 分钟。
这样做会产生不良副作用吗?这种方法有缺陷吗?或者有更好的方法吗?
谢谢。
I am trying to make a semi-realtime notification system sort of like on Facebook and for that I am looking forward to using long polling instead of mindless polling (polling every N seconds).
Yes, I am not using Apache, I am on Nginx which can handle this type of polling.
Now a question arose, all the tutorials I read about this subject matter of long polling show examples where the ajax request timeout in 30-50 seconds if no data is returned and then poll again, that made no sense to me because previously I used to poll the server every 30 seconds to check for notifications, how does the long polling make the situation any better? it will still be reconnecting every 30 - 50 seconds.
For that reason I considered that it might be an option to change max_execution_time from the default 60 to 300 or 400, then poll with a request that waits for at least 5 mins before timing out and reconnecting.
Can I expect any bad side effects of doing so? Is this approach flawed? Or is there a better approach?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更好的方法是使用针对此类任务进行优化的后端,例如
node.js
。但是,如果您想使用 PHP,则没有理由反对提高最大执行时间。
The better approach would be using a backend optimized for tasks like that, e.g.
node.js
.However, if you want to use PHP, there's no reason against raising the max execution time.