在我的Django应用中,我需要将用户的请求代理到其他服务器。我使用asyncio/aiohttp client

#user->request
.....

loop = asyncio.get_event_loop()
future = asyncio.ensure_future(self.run(t1, t2, t3))
loop.run_until_complete(future)

......
# response

当我的django服务器以python manager.py runserver启动时,当用户请求时发生以下错误。



但是当我从Gunicorn开始时,一切都很好。

也许我应该使用new_event_loop

为什么Gunicorn没有问题?

最佳答案

请尝试以下操作:

loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)

但是,除非在 View 中发送大量请求,否则在同步Django中使用aiohttp不会提高其速度。如果这样做的话,最好将该任务移到某个工作人员(例如Celery)上,或者也将aiohttp用作服务器,而不是Django。

关于python - Django `python manage.py runserver`不支持asyncio&aiohttp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51397012/

10-13 03:31