【问题标题】:Python-rq with flask + uwsgi + Nginx : Do I need more uwsgi processes or redis workers?python-rq with flask + uwsgi + Nginx :我需要更多的 uwsgi 进程还是 redis 工作者?
【发布时间】:2017-12-05 20:03:38
【问题描述】:

我有一台具有上述配置的服务器,我正在处理长任务,但我必须通过 Firebase 向用户更新有关进程状态的信息。为了立即响应客户端,我使用 python-rq 在 redis 中排队。

我正在使用烧瓶、uwsgi 和 Nginx。在 uwsgi conf 文件中,有一个字段询问进程数。 我的问题是,我需要启动多个 uwsgi 进程还是更多的 redis 工作者?

启动更多的 uwsgi 工作人员会创建更多的 redis 工作人员吗?

扩展如何工作,我的服务器有 1 个 vCPU 和 2GB 内存。我有用于生产的 aws 自动缩放。我是否应该运行更多的 uWsgi 工作人员以及只有一个队列有多少个 redis 工作人员。

我正在独立启动工人。烧瓶应用正在导入连接并添加作业。

my startup script

my worker code

【问题讨论】:

    标签: python flask redis uwsgi python-rq


    【解决方案1】:

    这取决于您如何运行 rq worker。可能有两种情况

    1) 从应用程序内部运行 rq worker。然后在 uwsgi 设置中增加工人数量将自动产生 num_rq_workers_in_app_conf * num_app_workers_in_uwsgi_conf

    2) 在应用程序之外运行 rq 工作者,例如使用 supervisord。您可以在其中手动控制独立于应用程序的 rq 工作人员数量。

    根据我的说法,在 supervisord 下运行 rq workers 是比第 1 点更好的选择。它有助于有效调试每个 worker,而我在使用 rq 时遇到的另一个问题是通过第 1 点策略运行的 rq-workers 取消注册尽管每隔几周在后台运行,但它们从 rq ie 变为 rq 死亡。

    【讨论】:

    • 谢谢。我正在外面(独立)开始一个工人这是一个要点gist.github.com/codeAshu/11d1e3a981e83a0275db42bd6379900f,这是我的启动脚本gist.github.com/codeAshu/3b71b689041654d323a652d2f520fabc
    • 我的服务器有 1 个 vCPU 和 2GB 内存。我有用于生产的 aws 自动缩放。我是否应该运行更多的 uWsgi 工作人员以及只有一个队列有多少个 redis 工作人员。
    • 这基本上取决于您在服务上获得的请求负载。增加 uwsgi 工作人员将提高您的应用可用性,增加 rq 工作人员会增加并行处理,即如果您不关心工作处理和工作排队时间,则无需增加 rq 工作人员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2012-12-26
    • 2017-08-07
    • 2022-01-09
    • 2011-11-12
    • 2018-06-07
    相关资源
    最近更新 更多