如何正确 运行 监视不同的工人

How to properly run monit with different workers

我正在使用不同的队列来管理延迟的作业,并使用 monit 确保工作人员在挂起时重新启动。

我的问题是,在给定以下设置的情况下,如何正确设置 monit 以使用正确的工作参数重新启动我的工作人员:

现在我正在将 pid 0 硬编码为优先工作者并传递给它不同的参数

check process delayed_job.0
   with pidfile /var/run/delayed_job.0.pid
   start program = "/bin/su -c 'bin/delayed_job --i 0 start --queue priority'"
   stop program = "/bin/su -c 'bin/delayed_job  --i 0 stop'"

check process delayed_job.1
   with pidfile /var/run/delayed_job.1.pid
   start program = "/bin/su -c 'bin/delayed_job --i 1 start --queue default'"
   stop program = "/bin/su -c 'bin/delayed_job  --i 1 stop'"

check process delayed_job.2
   with pidfile /var/run/delayed_job.2.pid
   start program = "/bin/su -c 'bin/delayed_job --i 2 start --queue default'"
   stop program = "/bin/su -c 'bin/delayed_job  --i 2 stop'"

是否有一种不太静态的方法可以跨许多不同的队列 types/worker 配置进行扩展?

简短的答案是

monit 没有自带缩放功能。您想要观看的每项服务都必须独立配置。如果您查看 monit 的其他可能性,如任何任务的特定负载、io、net 等,这也很有意义。