2015-01-09 79 views
0

我在opsworks中使用before_restart.rb鉤子,當它運行「rake i18n:js:export」時我有一個問題。我不知道爲什麼用這個耙子運行sidekiq。它只在opsworks的設置階段失敗。當我部署它時,錯誤消失。Opsworks - 廚師:耙在opsworks廚師鉤運行sidekiq

[2015-01-09T18:52:17+00:00] INFO: deploy[/srv/www/XXX] queueing checkdeploy hook /srv/www/XXX/releases/20150109185157/deploy/before_restart.rb 
[2015-01-09T18:52:17+00:00] INFO: Processing execute[rake i18n:js:export] action run (/srv/www/XXXX/releases/20150109185157/deploy/before_restart.rb line 3) 


Error executing action `run` on resource 'execute[rake i18n:js:export]' 


Mixlib::ShellOut::ShellCommandFailed 

Expected process to exit with [0], but received '1' 
---- Begin output of bundle exec rake i18n:js:export ---- 
STDOUT: 2015-01-09T18:52:30Z 1808 TID-92c6g INFO: Sidekiq client with redis options {} 
STDERR: /home/deploy/.bundler/XXXX/ruby/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:309:in `rescue in establish_connection': Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED) (Redis::CannotConnectError) 
+0

127.0.0.1:6379(ECONNREFUSED)(Redis :: CannotConnectError)...此時顯然沒有在端口6379上運行的Redis服務。 – 2015-02-10 17:32:10

+0

是的,我知道,但我不知道爲什麼在rake i18n任務中運行sidekiq,以及爲什麼在本地要求redis服務器,如果我在遠程服務器中配置了redis服務器(在initializers/sidekiq.rb中配置)。 – 2015-02-13 20:28:50

回答

0

Sidekiq客戶端(NOT sidekiq服務器)正在運行,因爲它是在初始化程序中定義的。當耙子運行時,它會加載整個rails應用程序環境。因此,要麼允許環境變量禁用config/initializers/sidekiq.rb中的sidekiq客戶端,要麼確保在運行此實例的實例上正確配置了redis服務器。

unless ENV['DISABLE_SIDEKIQ'] 
    # Sidekiq.configure... 
end 

DISABLE_SIDEKIQ=true bundle exec rake do:stuff