Я использую redis-cache для кэширования фрагментов в своем приложении. Когда redis недоступен или недоступен, я получаю исключения таймаута, которые вызывают 500 ошибок.Как изящно обращаться с ошибкой кеша Rails? (redis-cache)
Это случается редко, но для кэша я ожидал бы рельсы для лечения тайм-аут, как:
- нет-оп на записи
- кэш-промаха на чтение.
Любые предложения? Это что-то, что настраивается в кэшировании рельсов, или мне нужно сделать некоторые исправления для обезьян, чтобы обработать этот случай изящно?
Соответствующая часть моей stacktrace ниже, в случае, если она помогает в любом случае. , ,
execution expired
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/1.8/timeout.rb:60:in `new'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/connection/ruby.rb:26:in `connect'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/connection/ruby.rb:128:in `with_timeout'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/connection/ruby.rb:25:in `connect'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:227:in `establish_connection'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:23:in `connect'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:247:in `ensure_connected'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:137:in `process'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:206:in `logging'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:136:in `process'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis/client.rb:46:in `call'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis.rb:157:in `get'
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/1.8/monitor.rb:242:in `synchronize'
bundle/gems/ruby/1.8/gems/redis-2.2.2/lib/redis.rb:156:in `get'
bundle/gems/ruby/1.8/gems/redis-store-1.0.0.1/lib/redis/store/interface.rb:5:in `get'
bundle/gems/ruby/1.8/gems/redis-store-1.0.0.1/lib/redis/store/marshalling.rb:13:in `get'
bundle/gems/ruby/1.8/gems/redis-store-1.0.0.1/lib/active_support/cache/redis_store.rb:119:in `read_entry'
Спасибо Карлос - мы на Rails 3. Это исправление устраняет соединения, но не таймауты. – klochner