如何在capistrano部署后检测孤立的sidekiq进程?

我们有一个Rails 4.2应用程序,它与sidekiq进程一起运行以执行长任务。

不知何故,在几周前的一次部署中,有些事情发生了变化(capistrano部署过程没有有效地阻止它,无法弄清楚原因)并且还有一个孤立的sidekiq进程正在运行,正在与当前的进程竞争redis队列上的作业。 因为这个过程源已经过时,它开始在我们的应用程序上给出随机结果(取决于哪个过程捕获了这个工作),我们得到了非常困难的时间,直到我们想出这个…

我怎么能阻止这种情况再次发生? 我的意思是,我可以在每次部署后运行到VPS并运行ps aux | grep sidekiq ps aux | grep sidekiq检查是否有多个..但它不实用。

使用您的init系统来管理Sidekiq,而不是Capistrano。

https://github.com/mperham/sidekiq/wiki/Deployment#running-your-own-process