gpt4 book ai didi

php - 高频 Ajax 和 MySQL sleep 过载

转载 作者:可可西里 更新时间:2023-11-01 07:43:02 24 4
gpt4 key购买 nike

我目前正在开发一个轻型 php 框架,以便为我的网站使用一些高请求的 ajax,并且遇到了一个让我完全困惑的有趣问题。 ajax 用于一系列通知,因此 javascript 每 30 秒发送一次 ajax 请求以获取新信息。这个 ajax 在整个站点的每个页面上都是事件的,所以我意识到它有很多请求,因为在任何特定时刻都有数百个用户正在浏览该站点,其中许多用户打开了多个窗口。

语法明智的一切都是完美的。问题是,当我为我的社区激活 ajax 时,MySQL 数据库中累积了 30 - 40 个 SLEEP 命令。所有这些似乎都忽略了 10 秒的设置超时。结果,它会影响整个站点的性能。

我的理解是,剩余的 sleep 命令是连接尚未关闭的结果。我使用的是 MySQLi 面向对象类,并用我自己的一些功能对其进行了扩展。一切都在教科书中,并根据文档进行了双重检查,我确保 MySQLi 类的每一小部分都已关闭并发布。

如果有人对这种效果有任何智慧或经验,我将不胜感激。

最佳答案

您是否尝试过推送方法与当前的拉取/轮询方法?看看 cometd :

但是,也有一些缺点,主要是您必须保持打开的连接,并且某些浏览器会限制您可以保持的连接数。以下文章讨论了使用 Comet 的优缺点并建议了一种混合轮询方法:

这是一个关于 cometd 的 stackoverflow 问题:


关于php - 高频 Ajax 和 MySQL sleep 过载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com