4

在 Python-RQ 中减少机器上工作人员数量的好方法是什么?

根据文档,我需要向机器上的一个工作进程发送一个 SIGINT 或 SIGTERM 命令:

打倒工人

如果在任何时候,worker 收到SIGINT(via Ctrl+C) 或SIGTERM(via kill),worker 会等到当前运行的任务完成,停止工作循环并优雅地注册自己的死亡。

如果在此删除阶段SIGINTSIGTERM再次收到,worker 将强制终止子进程(发送它SIGKILL),但仍会尝试注册自己的死亡。

这似乎意味着大量的编码开销:

  • 需要跟踪工作进程的 PID
  • 需要有一种从远程机器发送 SIGINT 命令的方法

我真的需要自定义构建这个吗,或者有没有办法使用 Python-RQ 库或其他一些现有的库轻松地做到这一点?

4

1 回答 1

6
  1. 让所有正在运行的工作人员使用rq.Worker.all()
  2. 选择你想杀死的工人
  3. 采用os.kill(worker.pid, signal.SIGINT)
于 2013-03-03T09:12:57.537 回答