gpt4 book ai didi

python - redis-py "ConnectionError: Socket closed on remote end"

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:02 26 4
gpt4 key购买 nike

使用 redis-py 的 PubSub 类有时会出现以下异常:

Exception in thread listener_2013-10-24 12:50:31.687000:
Traceback (most recent call last):
File "c:\Python27\Lib\threading.py", line 551, in __bootstrap_inner
self.run()
File "c:\Python27\Lib\threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\Users\Administrator\Documents\my_proj\my_module.py", line 69, in _listen
for message in _pubsub.listen():
File "C:\Users\Administrator\virtual_environments\spyker\lib\site-packages\redis\client.py", line 1555, in listen
r = self.parse_response()
File "C:\Users\Administrator\virtual_environments\spyker\lib\site-packages\redis\client.py", line 1499, in parse_response
response = self.connection.read_response()
File "C:\Users\Administrator\virtual_environments\spyker\lib\site-packages\redis\connection.py", line 306, in read_response
response = self._parser.read_response()
File "C:\Users\Administrator\virtual_environments\spyker\lib\site-packages\redis\connection.py", line 106, in read_response
raise ConnectionError("Socket closed on remote end")
ConnectionError: Socket closed on remote end

什么会导致这样的事件?
如果我捕获到这个异常,合理的处理逻辑是什么?重试 listen() 会是徒劳的吗?

问而不是简单地尝试的原因是我不知道如何重现这个问题。这种情况很少见,但它是有害的,因此我必须在再次出现此错误之前创建一些逻辑。

最佳答案

可能的来源:

  1. 连接另一端的代码错误导致断开连接
  2. 远程计算机重新启动或崩溃
  3. 有人正在使用他们的网络接口(interface)ipconfig 或类似的
  4. 暂时性网络错误持续了足够长的时间,以至于无法连接掉落

最好不要担心为什么会发生这种情况(可能的原因我没有列出),而是专注于当它发生时如何处理。

您可能最好在代码中找到一个位置来添加 try/except 并处理接收到的部分数据,或者忽略接收到的部分数据。

关于python - redis-py "ConnectionError: Socket closed on remote end",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731852/

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