gpt4 book ai didi

python - 使用gevent时需要 celery 吗?

转载 作者:太空狗 更新时间:2023-10-30 02:46:45 25 4
gpt4 key购买 nike

我正在开发一个 django 网络应用程序,该应用程序具有需要很长时间才能返回的功能(比如 sync_files())。当我使用 gevent 时,当 sync_file() 运行时我的应用程序不会阻塞,其他客户端可以很好地连接并与 webapp 交互。

我的目标是让 webapp 响应其他客户端而不是阻塞。我不希望有无数用户连接到我的 webapp(可能最多 20 个连接),而且我不想将其设置为下一个 twitter。我的应用程序在 vps 上运行,所以我需要一些轻量级的东西。

所以在我上面列出的情况下,当我使用 gevent 时使用 celery 是多余的吗?使用 celery 有什么特别的好处吗?我不想使用 celery,因为它是将在我的机器上运行的另一项服务。

编辑:发现 celery 可以在 gevent 上运行工作池。我想我对 gevent 和 celery 之间的关系有点不确定。

最佳答案

简而言之,您确实需要 celery 。

即使你用gevent,有并发,问题也变成了请求超时。假设您的任务需要 10 分钟才能运行,但典型的请求超时大约为一分钟。因此,如果您直接在 View 中触发任务,服务器将开始处理它,但一分钟后客户端(浏览器)可能会断开连接,因为它认为服务器已离线。结果,您的数据可能会损坏,因为您无法保证连接关闭时会发生什么。 Celery 解决了这个问题,因为它会触发一个后台进程,该进程将独立于 View 处理任务。因此用户将立即获得 View 响应,同时服务器将开始处理任务。这是处理任何需要大量处理的场景的正确模式。

关于python - 使用gevent时需要 celery 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18992369/

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