我正在使用wercker来运行我的Rails应用程序的规范。我在wercker上设置Redis时遇到问题。在我的rails应用程序中,我redis.rb
看起来像这样:
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
在wercker我设置WERCKER_REDIS_HOST
ENVIROMENTAL变量:127.0.0.1
和WERCKER_REDIS_PORT
到6379
当我开始规格时,它会返回:
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' # ------------------ # --- 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'
我该如何解决?