2012-09-29 33 views
2

我最近升級了Rails到3.2.2,現在我似乎碰到了Memcache相關的問題......任何人都可以幫忙嗎?Heroku Memcache問題 - Dalli :: NetworkError:localhost:11211 is down

我的生產配置:

config.serve_static_assets = true 
config.static_cache_control = "public, max-age=2592000" 
config.assets.digest = true 
config.action_controller.perform_caching = true 
config.cache_store = :dalli_store 
config.action_dispatch.rack_cache = { 
:metastore => Dalli::Client.new, 
:entitystore => 'file:tmp/cache/rack/body', 
:allow_reload => false 
} 

達利的寶石是在束

gem 'dalli' 

我已經添加了通過herokus GUI的內存緩存插件。

我Procfile正是如此(也安裝了「薄」寶石):

web: bundle exec rails server -p $PORT thin -e $RACK_ENV 

但即使我得到這些錯誤,當我嘗試做簡單的緩存維護控制檯:

Loading production environment (Rails 3.2.2) 
irb(main):001:0> dc = Dalli::Client.new('localhost:11211') 
=> #<Dalli::Client:0x00000007501980 @servers="localhost:11211", @options={}, @ring=nil> 
irb(main):002:0> dc.flush_all 
localhost:11211 failed (count: 0) 
Dalli::NetworkError: localhost:11211 is down: 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/server.rb:47:in `request' 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/options.rb:18:in `block in request' 
    from /usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/options.rb:17:in `request' 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/client.rb:158:in `block in flush' 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/client.rb:158:in `map' 
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-2.2.1/lib/dalli/client.rb:158:in `flush' 
    from (irb):2 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands/console.rb:47:in `start' 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands/console.rb:8:in `start' 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

和當然,資產服務也是失敗的:

2012-09-29T02:26:29+00:00 app[web.3]: cache error: No server available 
2012-09-29T02:26:29+00:00 app[web.3]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:80:in `block in pre_process' 
2012-09-29T02:26:29+00:00 app[web.3]: /app/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine' 
2012-09-29T02:26:29+00:00 app[web.3]: /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in `run' 
2012-09-29T02:26:29+00:00 app[web.3]: /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:265:in `start' 
2012-09-29T02:26:29+00:00 app[web.3]: /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.2/lib/rails/commands/server.rb:70:in `start' 

這是我的配置問題?這是Heroku問題嗎?

回答

1

,因爲它被設置爲這些事情在默認情況下刪除此...

config.action_dispatch.rack_cache = { 
:metastore => Dalli::Client.new, 
:entitystore => 'file:tmp/cache/rack/body', 
:allow_reload => false 
} 

......一旦你確保你的達利的版本有這個commit這是最新版本。