我正在通过 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 秒只有五个客户端访问服务器)。
我在这个问题上花了很多时间,现在我开始失去任何想法该做什么。任何提示或想法将不胜感激。