0

アプリケーションは Rails 4.1.4、Ruby 2.1.2 です。

sidekiq 3.2.6、redis 3.1.0、セルロイド 0.15.2 を使用。sidekiq の実装は、リモート redis キュー (エラスティック キャッシュ) への接続を除いて、可能な限りデフォルトです。

特定のイベントが処理されるとき、sidekiq を使用して外部 API への呼び出しをキューに入れます。この API は、アプリケーションがホストされているサーバーから curl を介して到達できます。他のすべての機能は、まだ期待どおりに実行されているようです。この機能は、現在のサーバー実装/アーキテクチャで数週間機能しています。

エラスティック ロード バランサーの背後にある EC2 インスタンスへのデプロイ (Jenkins を介した Capistrano を使用) が成功した後、自動スケーリング グループ sidekiq は Elasticcache に接続 (?) しなくなります。

SocketError: getaddrinfo: Name or service not known
/gems/redis-3.1.0/lib/redis/connection/ruby.rb:152 in getaddrinfo
/gems/redis-3.1.0/lib/redis/connection/ruby.rb:152 in connect
/gems/redis-3.1.0/lib/redis/connection/ruby.rb:211 in connect
/gems/redis-3.1.0/lib/redis/client.rb:304 in establish_connection
/gems/redis-3.1.0/lib/redis/client.rb:85 in block in connect
/gems/redis-3.1.0/lib/redis/client.rb:266 in with_reconnect
/gems/redis-3.1.0/lib/redis/client.rb:84 in connect
/gems/redis-3.1.0/lib/redis/client.rb:326 in ensure_connected
/gems/redis-3.1.0/lib/redis/client.rb:197 in block in process
/gems/redis-3.1.0/lib/redis/client.rb:279 in logging
/gems/redis-3.1.0/lib/redis/client.rb:196 in process
/gems/redis-3.1.0/lib/redis/client.rb:102 in call
/gems/redis-3.1.0/lib/redis.rb:1315 in block in smembers
/gems/redis-3.1.0/lib/redis.rb:37 in block in synchronize
/usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb:211 in mon_synchronize
/gems/redis-3.1.0/lib/redis.rb:37 in synchronize
/gems/redis-3.1.0/lib/redis.rb:1314 in smembers
/gems/sidekiq-3.2.6/lib/sidekiq/api.rb:557 in block in cleanup
/gems/connection_pool-2.0.0/lib/connection_pool.rb:58 in with
/gems/sidekiq-3.2.6/lib/sidekiq.rb:72 in redis
/gems/sidekiq-3.2.6/lib/sidekiq/api.rb:556 in cleanup
/gems/sidekiq-3.2.6/lib/sidekiq/api.rb:549 in initialize
/gems/sidekiq-3.2.6/lib/sidekiq/scheduled.rb:79 in new
/gems/sidekiq-3.2.6/lib/sidekiq/scheduled.rb:79 in poll_interval
/gems/sidekiq-3.2.6/lib/sidekiq/scheduled.rb:58 in block in poll
/gems/sidekiq-3.2.6/lib/sidekiq/util.rb:15 in watchdog
/gems/sidekiq-3.2.6/lib/sidekiq/scheduled.rb:23 in poll
/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25 in public_send
/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25 in dispatch
/gems/celluloid-0.15.2/lib/celluloid/calls.rb:122 in dispatch
/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322 in block in handle_message
/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416 in block in task
/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55 in block in initialize
/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13 in block in create

sidekiq を再起動し、エラスティック キャッシュを再起動し、サーバーを再起動し、redis-cli で redis キューを検査しましたが、注目に値するものは何もありませんでした。

暗示されているように、redis-cli を使用してエラスティック キャッシュに接続できますがsidekiq/api、コンソールから使用しても同じ結果が得られますSocketError

改善する方法についてのアイデアはありますか?この時点で、アプリケーションはほとんど使用できません。

ありがとう!

4

1 に答える 1