【发布时间】:2011-03-17 08:43:54
【问题描述】:
我正在通过 WAN 处理来自多个 XMLRPC 客户端的请求。这个东西非常适合,比如说,一天(有时两天),然后在 socket.py 中冻结:
data = self._sock.recv(self._rbufsize)
_sock.timeout 为 -1,_sock.gettimeout 为无
我在主线程中没有做任何特别的事情(只是接收 XMLRPC 调用),还有另外两个线程与 DB 通信。这两个线程都工作正常并且在这个块中存活下来(用 WinPdb 进行了检查)。客户端发送的请求不超过 1KB,并且没有任何特殊内容:只是字典中漂亮而干净的字符串。在两次阻塞之间,我可以毫无问题地处理数万个请求。 防火墙已关闭,同一台机器上没有奇怪的软件等...
我使用 Windows XP 和 Python 2.6.4。我检查了 2.6.4 之间的差异。和 2.6.5,并没有发现任何重要的东西(或者我弄错了吗?)。 2.7 版本不是一个选项,因为我会错过 MySqlDB 的二进制文件。
由于互联网连接不佳的客户端不时发生的唯一情况是套接字中断。这种情况每 5-10 分钟发生一次(每 2 秒只有 5 个客户端访问服务器)。
我在这个问题上花了很多时间,现在我开始不知道该怎么办了。任何提示或想法将不胜感激。
【问题讨论】:
标签: python recv simplexmlrpcserver