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

时间:2018-03-30 15:13:12

标签: ruby-on-rails capistrano sidekiq

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

不知何故,在几周前的一次部署中,有些事情发生了变化(capistrano部署过程并没有有效地阻止它,无法找出原因)并且还有一个孤立的sidekiq进程正在运行正在与当前的一个竞争redis队列上的工作。因为这个流程源已经过时了,所以我们开始在我们的应用程序上给出随机结果(取决于哪个流程捕获了这个工作),我们很难在我们解决这个问题之前...

我怎样才能阻止这种情况再次发生?我的意思是,我可以在每次部署后进入VPS并运行macro_rules! bitmessage { (struct $name:ident($n:ty); $($field_name:ident: $length:expr, $value:expr;)*) => { struct $name ($n); $($name.1 = $name.1 | $value << $length)* }; } 以检查是否有多个......但它不实用。

1 个答案:

答案 0 :(得分:0)

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

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