我有一个具有上述配置的服务器,我正在处理长任务,但我必须向用户更新进程状态,这是通过firebase完成的。为了立即响应客户机,我使用python rq在redis中将作业排队。
我在用烧瓶和Uwsgi和Nginx。在uwsgi conf文件中,有一个字段要求进程数。
我的问题是,我需要启动多个uwsgi进程,还是需要更多的redis工作者?
启动更多的uwsgi工人会创建更多的redis工人吗?
扩展如何工作,我的服务器有1个vCPU和2GB内存。我有AWS自动校准生产。我是否应该运行更多的uwsgi工作线程以及只有一个队列的redis工作线程的数量。
我是独立开始工作的。Flask应用程序正在导入连接并添加作业。
my startup script
my worker code
最佳答案
这取决于你如何管理RQ员工。可能有两种情况
1)从应用程序内部运行RQ工作人员。然后,在uwsgi设置中增加工人数量将自动在uwsgi配置中生成num_rq_workers_*num_app_workers_
2)在应用程序外运行RQ工作人员,如使用Supervisord。你可以独立于应用程序手动控制RQ工作程序的数量。
据我所知,在监督下管理RQ员工是比第一点更好的选择。它有助于有效地调试每个工作线程,还有一个我在使用rq时遇到的问题是,通过point 1策略运行的rq工作线程会从rq中注销自己,也就是说,对于rq来说,虽然每隔几周在后台运行,但会死机。
关于python - 带有 flask + uwsgi + Nginx的Python-rq:我需要更多的uwsgi进程或redis worker 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44870551/