我在生产中运行 daphne 服务器并出现以下错误
Application instance <Task pending coro=<AsgiHandler.__call__() running at /home/coldbrewtech/frnd/backend/env/lib/python3.6/site-packages/channels/http.py:213> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/lib/python3.6/asyncio/futures.py:403, <TaskWakeupMethWrapper object at 0x7f0b49b6a6a8>()]>> for connection <WebRequest at 0x7f0b48daa438 method=POST uri=/api/getMessages clientproto=HTTP/1.1> took too long to shut down and was killed.
它发生在以下 POST 请求中:
class GetRoomMessages(APIView):
def post(self, request):
room_no = request.data.get('room_no', None)
message_id = request.data.get('message_id', None)
order = request.data.get('order', None)
message_instance = None
if(order == 'old'):
try:
message_instance = Message.objects.filter(room_no=room_no, id__lt = message_id).order_by('-id')
except Exception as e:
print(e)
return status_500()
elif(order == 'new'):
try:
message_instance = Message.objects.filter(room_no=room_no, id__gt = message_id).order_by('id')
except Exception as e:
print(e)
return status_500()
if(message_instance is not None):
serializer = MessageSerializer(message_instance, many=True)
return status_200("success", serializer.data)
else:
return status_400("Invalid Request")
我不确定为什么会发生这种情况,但是当有很多消息要序列化时就会发生这种情况。我认为序列化不需要时间,但我认为响应的大小可能太大了。一般情况是这样吗?如果不是,你能告诉我同样的原因是什么吗?