python - 来自客户端的消息来得太快
问题描述
我正在编写一个接受来自一个客户端的消息的 Python TCP/IP 服务器。收到消息后,我会解析 TCP 消息并根据其消息类型生成响应,并将生成的响应发送给客户端。
我的应用程序运行良好,直到您很快收到多条消息。我的服务器在处理消息时似乎阻塞了 I/O。例如,当我处理第三条消息时,我的服务器永远不会接受第四条消息,因为我仍在处理第三条消息。因此,第四条消息在空间中丢失了。
我正在考虑使用线程处理这个问题。Thread1
可以坐在那里,只接受来自客户端的传入消息并将它们放入队列中,同时Thread2
将从中读取请求消息Thread1
并生成要发送给客户端的响应。发送消息后,Thread2
会从Thread1
's Queue 中弹出消息。
这是立即解决这个问题的吗?
编辑:经过更多测试,我意识到我总是收到客户的消息;但是,如果客户端没有收到响应消息,客户端会在 5-10 秒后超时。我需要加快消息处理速度,因为我的服务器认为一切都很好,因为它实际上接收了所有消息并且不会像我之前想的那样丢失任何消息。问题是客户不耐烦。有关如何加快性能的任何提示?每个请求的进程并行运行,因此工作被平均分配?我看到的唯一问题是,在我处理另一条消息时很少有消息进来。
解决方案
推荐阅读
- salesforce - 在内容槽 Salesforce B2C Commerce Cloud 中添加自定义 css
- xslt - XSL 1.0 如果不喜欢
- variable-assignment - 将目标帧分配给 h2o.ai 中的预测
- python-3.x - 如何在for循环中的句子末尾添加一个单词
- php - 为什么 silex 不能在构造函数中解析 App?
- google-api - 加载 ALLOW-FROM 时遇到的无效“X-Frame-Options”标头不是可识别的指令。标题将被忽略
- types - 为什么这个 OCaml 仿函数不能识别结构类型?
- android - 将 JSON 嵌套到颤动中
- php - 按类别搜索产品
- python - 使用 pytest 导入会破坏 VSCode 测试