我有一个具有上述配置的服务器,我正在处理长时间的任务,但我必须更新用户有关进程状态的信息,这是我通过Firebase完成的。为了立即响应客户端,我使用python-rq将作业放入redis中。
我使用的是flask、uwsgi和Nginx。在uwsgi conf文件中,有一个字段要求提供进程数。我的问题是,我需要启动多个uwsgi进程,还是需要更多的redis工作进程?
启动更多的uwsgi工作人员会创造更多的redis工作人员吗?
如何扩展,我的服务器有1个vCPU和2 2GB的内存。我有用于生产的aws自动缩放。我是否应该运行更多的uWsgi工作进程,以及有多少个redis工作进程只有一个队列。
我正在独立启动worker。flask应用程序正在导入连接并添加作业。
发布于 2017-07-02 20:21:52
这取决于您是如何运行rq worker的。可能有两种情况
1)从应用内部运行rq workers。然后,增加uwsgi设置中的工作进程数将自动产生num_rq_workers_in_app_conf * num_app_workers_in_uwsgi_conf
2)在应用程序外部运行rq工作进程,如使用supervisord。其中您可以手动控制独立于app的rq工作线程的数量。
在我看来,在supervisord下运行rq worker比在Point1下运行rq worker更好。它有助于每个worker的有效调试,而且我在使用rq时遇到的另一个问题是,通过Point1策略运行的rq -worker会从rq中注销自己,即在rq中失效,尽管在后台运行了几个星期。
https://stackoverflow.com/questions/44870551
复制相似问题