Sidekiq - 排队作业从旧代码运行

时间:2016-07-28 11:02:46

标签: ruby-on-rails sidekiq

我将来安排约30个sidekiq工作(在接下来的30天内让我们每天工作1天)。

我使用capistrano进行部署。所以我随时都有5个发布目录。让我们说:

/var/www/release1/ (recent)
/var/www/release2/
/var/www/release3/
/var/www/release4/
/var/www/release5/

让我们说几天之后,我会发布一个新版本。现在,先前计划的作业仍在旧代码中运行。这是预期的吗?我们如何解决这个问题以确保它在开始运行时使用最新版本目录而不是在计划时使用?

2 个答案:

答案 0 :(得分:4)

我想为可能因其他原因陷入这种情况的人提供替代答案。

我发现有一个 sidekiq zombie进程正在运行。所以,即使我手动停止sidekiq并重新启动它,我还有另一个sidekiq进程挂起运行旧代码。因此,运行unix htop命令或ps aux | grep sidek并尝试查找僵尸进程是一个好主意。

答案 1 :(得分:3)

这可能是因为在成功部署后sidekiq进程没有重启。

确保您的部署过程重新启动sidekiq并确保重启确实有效,否则sidekiq进程仍然保留旧代码。

https://github.com/mperham/sidekiq/wiki/Deployment