gpt4 book ai didi

python - Gunicorn gevent workers vs Uvicorn ASGI

转载 作者:行者123 更新时间:2023-12-04 11:04:58 33 4
gpt4 key购买 nike

我目前正在 Django 中开发一项服务,该服务使用缓慢的外部 API(大约需要 10 秒才能获得响应),这意味着与我的服务器的连接保持打开状态等待外部 API 响应,并占用工作人员时间/资源。
我知道我可以使用 gunicorn 的线程或 gevent worker 来添加并发性,但似乎无法掌握将 gunicorn 与 gevent worker 和 uvicorn (或任何其他服务器)与 asgi 接口(interface)一起使用之间的确切区别。
使用其中一个的标准是什么?
Django 仍然不完全支持 async/await View 。如果我只坚持 gevent worker 会更好吗?

最佳答案

Gunicorn 有一个 pre-fork worker 模型
pre-fork worker 模型基本上意味着 master 创建处理每个请求的 fork。 fork 是一个完全独立的 *nix 进程 (Source)。
Uvicorn 是一个运行 uvloop 的 ASGI 服务器
Python async 需要一个事件循环才能使用它的异步功能。和uvloopasyncio loop 的替代品.因此,如果您的代码中有异步调用,您可以使用 uvloop在内部或使用 uvicorn作为您的 ASGI 服务器。注意:您仍然只有一个事件循环。您可以选择使用gunicornuvicorn拥有多个工作人员并使用 uvloop。
在您的 django 应用程序中,使用 uvloop 是有意义的。在内部(如果您选择)并使用 gunicorn作为您的 ASGI。

关于python - Gunicorn gevent workers vs Uvicorn ASGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62543342/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com