提问人:Muhammad Nabeel 提问时间:11/19/2019 更新时间:11/19/2019 访问量:1678
如何在 django rest 中并行运行两个请求
How to run two requests parallel in django rest
问:
我有两个请求,它们是从 react 前端调用的,一个请求在一个循环中运行,每个请求返回图像,现在另一个请求正在注册一个用户,两者都运行良好,但是当图像请求在循环中运行时,同时我从其他选项卡注册用户,但是该请求状态显示待处理,如果我停止图像请求然后用户注册,我该如何同时并行运行它们。
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)
我从 react 调用的这些端点,第二个端点正在循环中调用,同时从其他选项卡调用我注册用户,但它显示状态待处理,如果我停止图像端点,然后注册用户,我怎样才能使这两个请求并行运行。 我研究了很多,但找不到合适的解决方案,我使用芹菜有一个解决方案,但没有解决它是否能解决我的问题,如果它解决了我该如何实现上述场景
答:
2赞
youngminz
11/19/2019
#1
您应该首先确定瓶颈是前端还是后端。
- 前端:Chrome 一次最多可以对同一域名发出 6 个请求。(最高 HTTP/1.1)
- backend:如果你使用 ,可以考虑使用 gunicorn 或 uWSGI。正如 Django 文档所说,manage.py 命令不应该在生产中使用。将gunicorn或uWSGI中的进程和线程数设置修改为2或更高,然后重试。
python manage.py runserver
评论