1

我在生产中运行 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")

我不确定为什么会发生这种情况,但是当有很多消息要序列化时就会发生这种情况。我认为序列化不需要时间,但我认为响应的大小可能太大了。一般情况是这样吗?如果不是,你能告诉我同样的原因是什么吗?

4

0 回答 0