python-3.x - 如何仅为一个 rq 队列启动多个工作人员?
问题描述
我只需要为我的一个队列(下面的“高”优先级)启动多个工作人员。如何在用于启动工作人员的工作人员脚本的上下文中执行此操作?
from config import Config
from redis import from_url
from rq import Worker, Queue, Connection
listen = ['high','mid','low']
conn = from_url(Config.REDIS_URL)
if __name__ == '__main__':
with Connection(conn):
worker = Worker(list(map(Queue, listen)),log_job_description=True,)
worker.work()
工作脚本本身被一个主管进程调用,该进程为我的每个队列生成 2 个工作实例。
[supervisord]
[program:worker]
command=python -m worker
process_name=%(program_name)s-%(process_num)s
numprocs=2
directory=.
stopsignal=TERM
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
redirect_stderr=true
如果我想让 3 名工人为我的“高”队列做好准备,但只有 2 名工人为“中”和“低”队列做好准备,我该如何实现呢?
我尝试以“突发”模式启动工人,但如果没有足够的工作,这也会杀死工人。我可以接受一种解决方案,它可以像 Burst 一样自动缩放工人,但始终保持至少一个工人活着。
解决方案
推荐阅读
- javascript - 如何组合两个相关函数(Javascript)
- craftcms - CraftCMS 3.6.4 - 退出控制面板时出现 503 错误
- r - R中的列表(或字典)列表
- c# - 无法首先在表 ef6 db 中插入标识列的显式值
- java - maven - 多模块项目访问父源代码并避免冗余依赖声明
- flutter - 在 chrome 上测试时,我可以使 SharedPreferences 正常工作(调试版本或发布版本)吗?
- python - 从 setup.cfg 创建虚拟环境
- python - 请帮助我进行 Django 模型对象验证
- reactjs - 如何阻止选择组件重新对齐
- c++ - 在集合中存储相等的对象