2016-03-22 28 views
1

私は私のレールアプリの仕様を実行するためにwerckerを使用しています。 werckerにredisを設定することに問題があります。私のレールのアプリでは、私はこのようになりますどのredis.rbあります127.0.0.1:6379のRedisへの接続中にエラーが発生しました(Errno :: ECONNREFUSED) - Wercker

Redis::CannotConnectError: 
Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:332:in `rescue in establish_connection' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:318:in `establish_connection' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:94:in `block in connect' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:280:in `with_reconnect' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:93:in `connect' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:351:in `ensure_connected' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:208:in `block in process' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:293:in `logging' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:207:in `process' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:178:in `call_pipelined' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:150:in `block in call_pipeline' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:280:in `with_reconnect' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/client.rb:148:in `call_pipeline' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis.rb:2245:in `block in multi' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis.rb:57:in `block in synchronize' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis.rb:57:in `synchronize' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis.rb:2237:in `multi' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/sidekiq-4.1.0/lib/sidekiq/client.rb:171:in `block in raw_push' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/connection_pool-2.2.0/lib/connection_pool.rb:64:in `block (2 levels) in with' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/connection_pool-2.2.0/lib/connection_pool.rb:63:in `handle_interrupt' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/connection_pool-2.2.0/lib/connection_pool.rb:63:in `block in with' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/connection_pool-2.2.0/lib/connection_pool.rb:60:in `handle_interrupt' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/connection_pool-2.2.0/lib/connection_pool.rb:60:in `with' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/sidekiq-4.1.0/lib/sidekiq/client.rb:170:in `raw_push' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/sidekiq-4.1.0/lib/sidekiq/client.rb:67:in `push' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/sidekiq-4.1.0/lib/sidekiq/worker.rb:115:in `client_push' 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/sidekiq-4.1.0/lib/sidekiq/extensions/generic_proxy.rb:19:in `method_missing' 
# ./app/models/user.rb:26:in `send_reset_password_instructions' 
# ./spec/models/user_spec.rb:43:in `block (3 levels) in <top (required)>' 
# ------------------ 
# --- Caused by: --- 
# IO::EINPROGRESSWaitWritable: 
# Operation now in progress - connect(2) would block 
# /pipeline/cache/bundle-install/ruby/2.3.0/gems/redis-3.2.2/lib/redis/connection/ruby.rb:122:in `connect_addrinfo' 
:私は私のスペックが返すを開始すると 6379

から127.0.0.1WERCKER_REDIS_PORT:私はWERCKER_REDIS_HOST enviromental変数に設定werckerで

if Figaro.env.rediscloud_url 
    uri = URI.parse(Figaro.env.rediscloud_url) 
    REDIS = Redis.new(host: uri.host, port: uri.port, password: uri.password) 
elsif ENV['WERCKER_REDIS_HOST'] && ENV['WERCKER_REDIS_PORT'] 
    REDIS = Redis.new(host: ENV['WERCKER_REDIS_HOST'], port: ENV['WERCKER_REDIS_PORT']) 
else 
    REDIS = Redis.new 
end 

どうすれば修正できますか?

+0

を持つ端末に手動で

スタートのRedisを使用すると、接続する前に睡眠を追加する場合、それは動作しますか?私は、redisまたはmysqlの起動に少し時間がかかるケースを見てきました。 'service-ready'ステップまたはsthgが似ています。それを使用してください。 – ZeissS

+0

をダブルチェック - ステップは 'service-check'と呼ばれます:https://app.wercker.com/#applications/565702a38faa27fb0d1db58a/tab/details/ – ZeissS

答えて

1

私は同じ問題を抱えていたが、私は修正が見つかりました:redis-server

関連する問題