我正在使用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 正确停止。
我的疑惑是:
答案 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。