微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

django ConnectionError: Error 104 while writing to socket. Connection reset by peer

django ConnectionError: Error 104 while writing to socket. Connection reset by peer错误提示

Internal Server Error: /api/v2/chenxm/
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, **kwargs)
  File "/home/chenxinming/StructureSearchViews/views.py", line 27, in post
    data = self.run(obj_keys, concept_name, startPos, endPos)
  File "/home/chenxinming/StructureSearch/structureSearch.py", line 546, in run
    data = self.getobjectData(union_obj_keys, type)
  File "/home/chenxinming/StructureSearch/structureSearch.py", line 462, in getobjectData
    concept_map = Object.bulkGetobjectConcept(obj_keys)
  File "/home/chenxinming/object.py", line 868, in bulkGetobjectConcept
    concept_li = p.execute()
  File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 2894, in execute
    return execute(conn, stack, raise_on_error)
  File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 2810, in _execute_pipeline
    connection.send_packed_command(all_cmds)
  File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 603, in send_packed_command
    (errno, errmsg))
ConnectionError: Error 104 while writing to socket. Connection reset by peer.

经过检查和排查发现redis获取数据量过大,导致redis中断连接。

with cache.pipeline(transaction=False) as p:
    for english_name in english_li:
        p.hget(keyName._getConceptNaMetable(), english_name)
    concept_li = p.execu

原因是因为使用pipeline时,english_li的长度超过10w导致。修改限制english_li的长度数量

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐