Capistrano没有重启Sidekiq

时间:2016-07-06 16:30:33

标签: ruby-on-rails capistrano sidekiq

我让Capistrano将我的应用程序部署到云主机上的Ubuntu远程服务器上。它工作,但Sidekiq没有重新启动。在部署之后,新的Sidekiq作业卡在队列中,直到它最终重新启动。我目前手动SSH进入机器并运行sudo initctl stop/start workers。我对Capistrano和我的研究并不是非常强大到目前为止我没有找到解决方案。我希望我对比我更熟悉的人遗漏一些明显的东西。这是我的/config/deploy.rb文件的相关部分:

namespace :deploy do
  namespace :sidekiq do
    task :quiet do
      on roles(:app) do
        puts capture("pgrep -f 'workers' | xargs kill -USR1") 
      end
    end

    task :restart do
      on roles(:app) do
        execute :sudo, :initctl, :stop, :workers
        execute :sudo, :initctl, :start, :workers
      end
    end
  end

  after 'deploy:starting', 'sidekiq:quiet'
  after 'deploy:reverted', 'sidekiq:restart'
  after 'deploy:published', 'sidekiq:restart'
end

更新

来自我的回复日志:

 DEBUG [268bc235] Running /usr/bin/env kill -0 $( cat /home/ubuntu/staging/shared/tmp/pids/sidekiq-0.pid ) as ubuntu@159.203.8.242
 DEBUG [268bc235] Command: cd /home/ubuntu/staging/releases/20160806065537 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.2.3" ; /usr/bin/env kill -0 $( cat /home/ubuntu/staging/shared/tmp/pids/sidekiq-0.pid ) )
 DEBUG [268bc235] Finished in 0.471 seconds with exit status 1 (failed).

1 个答案:

答案 0 :(得分:2)

如果您在Capfile中安装并调用了capistrano-sidekiq gem,我认为您不需要在deploy.rb中使用这些配置。

确保您的Capfile中有require 'capistrano/sidekiq',否则无法调用默认任务。