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的长度数量