2015-01-09 80 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