带有烧瓶+ uwsgi + Nginx的Python-rq:我需要更多的uwsgi进程或redis工作者吗?

时间:2017-07-02 11:56:51

标签: python flask redis uwsgi python-rq

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

我正在使用flask和uwsgi以及Nginx。在uwsgi conf文件中,有一个字段要求进程数。 我的问题是,我是否需要启动多个uwsgi进程或更多redis工作程序?

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

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

我独立开始工作。烧瓶应用程序正在导入连接并添加作业。

my startup script

my worker code

1 个答案:

答案 0 :(得分:1)

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

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

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

根据我的说法,在监督下运行rq工作人员是比第1点更好的选择。它有助于每个工作人员的有效调试以及我在使用rq时遇到的另一个问题是通过第1点运行的rq-workers策略从rq注册,即为rq而死,尽管在几周的间隔内在后台运行。