在Python-RQ中减少计算机上工作者数量的好方法是什么?
According to the documentation,我需要向计算机上的一个工作进程发送SIGINT或SIGTERM命令:
取消工人
如果工人在任何时候收到
SIGINT
(通过 Ctrl + C )或SIGTERM
(通过kill
),工作人员会等到当前正在运行的任务完成,停止工作循环并优雅地注册自己的死亡。如果在此删除阶段再次收到
SIGINT
或SIGTERM
,工作人员将强行终止子进程(发送它SIGKILL
),但仍会尝试注册自己死了。
这似乎意味着很多编码开销:
我是否真的需要自定义构建它,或者有没有办法使用Python-RQ库或其他现有库轻松完成此操作?
答案 0 :(得分:5)
rq.Worker.all()
os.kill(worker.pid, signal.SIGINT)