2016-07-06 97 views
0

我有Capistrano將我的應用程序部署到雲主機上的Ubuntu遠程服務器。它的工作原理除了Sidekiq不會重新啓動。部署完成後,新的Sidekiq作業會停留在隊列中,直到最終重新啓動。我目前手動SSH進入機器並運行sudo initctl stop/start workers這是有效的。根據Capistrano和我的研究,我目前還沒有找到解決這個問題的辦法。我希望我對比我更熟悉的人丟失一些明顯的東西。這裏是我的/config/deploy.rb文件的相關部分:Capistrano不重新啓動Sidekiq

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 

UPDATE

從我的答覆日誌:

DEBUG [268bc235] Running /usr/bin/env kill -0 $(cat /home/ubuntu/staging/shared/tmp/pids/sidekiq-0.pid) as [email protected] 
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). 

回答

2

我不相信你需要那些CONFIGS在你的deploy.rb中,如果你已經安裝了capistrano-sidekiq gem並且在Capfile中調用它。

確保您的Capfile中有require 'capistrano/sidekiq'或者它不知道調用默認任務。

+0

很簡單 - 我錯過了'require'capistrano/sidekiq''。 –

+0

嗯...仍然沒有重新啓動 - 我認爲這是我的隊列只是加載工作,直到我手動重新啓動。 –

+0

我不知道發生了什麼 - 也許sidekiq崩潰了...剛剛運行另一個部署,現在隊列似乎工作。 –

相關問題