Ctrl + C后Sidekiq不会关闭

时间:2014-09-18 16:23:50

标签: ruby-on-rails postgresql ruby-on-rails-4 sidekiq

我正在使用Sidekiq进行Rails 4.1应用程序的后台操作。

当我输入 Ctrl + C 来关闭Sidekiq时,Sidekiq捕获信号但似乎在最后一个日志行后冻结:

^C2014-09-18T16:17:19.194Z 20686 TID-ovwtinh0g INFO: Shutting down
2014-09-18T16:17:21.041Z 20686 TID-ovwtixflc INFO: Shutting down 5 quiet workers

因此,我需要另一个终端窗口,我需要输入:

bundle exec sidekiqctl stop pidfile

这真的很不方便(大约需要8秒),我无法找到为什么Sidekiq无法使用 Ctrl + C 正确停止。

我的疑惑是:

  • Rails 4.1.5
  • Sidekiq 3.2.4
  • Postgresql DB

2 个答案:

答案 0 :(得分:19)

我遇到了同样的问题。 Sidekiq 3.2.4依赖于Celluloid宝石版本0.16.0,部分打破了Sidekiq。见这里:https://github.com/celluloid/celluloid/issues/457

将Sidekiq更新为3.2.5,将Celluloid锁定为版本0.15.2。

答案 1 :(得分:1)

你的Sidekiq过程中可能有另一个线程没有停止,可能是因为你是rescuing Exception