【问题标题】:How to run two requests parallel in django rest如何在 django rest 中并行运行两个请求
【发布时间】:2020-03-14 18:54:24
【问题描述】:

我有两个请求,从反应前端调用,一个请求在循环中运行,每个请求返回图像,现在另一个请求正在注册用户,两者都工作正常,但是当图像请求是循环运行,同时我从其他选项卡注册用户,但该请求状态显示为待处理,如果我停止图像请求然后用户注册,我怎样才能同时运行它们。

urls.py


  url(r'^create_user/$', views.CreateUser.as_view(), name='CreateAbout'),
   url(r'^process_image/$', views.AcceptImages.as_view(), name='AcceptImage'),

Views.py

class CreateUser(APIView):

    def get(self,request):
        return Response([UserSerializer(dat).data for dat in User.objects.all()])

    def post(self,request):
        payload=request.data
        serializer = UserSerializer(data=payload)

        if serializer.is_valid():
            instance = serializer.save()
            instance.set_password(instance.password)
            instance.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

class AcceptImages(APIView):

    def post(self,request):
        global video

        stat, img = video.read()
        frame = img
        retval, buffer_img = cv2.imencode('.jpg', frame)
        resdata = base64.b64encode(buffer_img)

        return Response(resdata)

我从反应调用这些端点,第二个端点正在循环调用,同时从其他选项卡我注册用户,但它显示状态挂起,如果我停止图像端点然后注册用户,怎么能我让这两个请求并行运行。 我研究了很多,但找不到合适的解决方案,我使用 celery 有一个解决方案,但如果它解决了我如何实现上述场景,它是否解决了我的问题

【问题讨论】:

    标签: django django-rest-framework django-views django-celery django-request


    【解决方案1】:

    您应该首先确定瓶颈是前端还是后端。

    • 前端:Chrome 一次最多可以向同一个域发出 6 个请求。 (最高 HTTP/1.1)
    • 后端:如果您使用python manage.py runserver,请考虑使用gunicorn 或uWSGI。与Django documentation says 一样,manage.py 命令不应在生产中使用。将 gunicorn 或 uWSGI 中的进程和线程数设置修改为 2 或更高,然后重试。

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2017-12-21
      相关资源
      最近更新 更多