0

何が起こったのかわかりません。私のアプリは正常に動作していましたが、今では頻繁にこのエラーで失敗します。Capistrano と Unicorn を使用しています。

問題は毎回cap deploy再実行するだけで修正されますが、すぐに壊れます。

Started POST "/monitorings" for 21.987.109.224 at 2012-06-20 08:05:49 +0100
Processing by MonitoringsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"#", "monitoring"=>{"inspection_type"=>"Intensive", "is_revoked"=>"0", "note_attributes"=>{"content"=>"", "attention_required"=>"0", "resolved"=>"0"}, "scenario_ids"=>[""], "outlet_id"=>"560"}, "commit"=>"Save"}
Expire fragment (?-mix:daily) (7.7ms)
Completed 500 Internal Server Error in 26ms

ArgumentError (invalid %-encoding (0607214051%2Fregions%2F11-20120607201444%2Fregions%2F38-20120618184202%2Fregions%2F3-20120409175338%2Fregions%2F36-20120618184137%2Fregions%2F12-20120607202042%2Fregions%2F13-20120607202050%2Fregions%2F37-20120618184150%2Fregions%/2F14-20120607202100%2Fregions%2F6-20120607201339%2Fregions%2F15-20120607202119%2Fregions%2F1-20120409175338%2Fregions%2F16-20120607202129%2Fregions%2F39-20120618184218%2Fregions%2F17-20120607202139%2Fregions%2F40-20120618184229%2F/regions%2F4-20120603182949%2Fregions%2F18-20120607202152%2Fregions%2F19-20120607202200%2Fregions%2F20-20120607202209%2Fregions%2F21-20120607202215%2Fregions%2F22-20120607202223%2Fregions%2F23-20120607202229%2Fregions%2F24-20120607/202236%2Fregions%2F41-20120618184240%2Fregions%2F25-20120607202245%2Fregions%2F26-20120607202253%2Fregions%2F42-20120618184248%2Fregions%2F43-20120618184256%2Fregions%2F27-20120607202301%2Fregions%2F28-20120607213722%2Fregions%2F2/9-20120607202317%2Fregions%2F30-20120607202324%2Fregions%2F44-20120618184306%2Fregions%2F31-20120607202332%2Fregions%2F45-20120618184313%2Fregions%2F32-20120607202339%2Fregions%2F34-20120607202355)):
  app/sweepers/outlet_sweeper.rb:13:in `expire_cache'
  app/sweepers/outlet_sweeper.rb:5:in `after_update'
  app/controllers/monitorings_controller.rb:114:in `after_create'
  app/controllers/monitorings_controller.rb:54:in `create'
  config/initializers/quiet_assets.rb:6:in `call_with_quiet_assets'

このアプリは、Ubuntu 10.04 を実行している VPS でホストされており、これは私が知る限り完全に最新のものです (実行しましたapt-get upgrade && apt-get install)。

誰かが疑問に思っている場合に備えて、スイーパーは次のとおりです。

class OutletSweeper < ActionController::Caching::Sweeper
  observe Outlet

  def after_update(outlet)
    expire_cache
  end

  # expire_fragment calls moved to their own method
  def expire_cache

    @controller ||= ActionController::Base.new

    expire_fragment(%r{daily})
    puts "Expired Daily Cache"

    expire_fragment(%r{weekly})
    puts "Expired Weekly Cache"
  end

  # Allows us to call the expire_cache method from rake
  def self.rake_sweep
    puts "Begining Expire Cache"
    new.expire_cache
  end

end
4

1 に答える 1

1

これは、スイーパーで次のように変更することで解決されました。

expire_fragment(%r{daily})
puts "Expired Daily Cache"

expire_fragment(%r{weekly})
puts "Expired Weekly Cache"

に:

expire_fragment "daily"
puts "Expired Daily Cache"

expire_fragment "weekly"
puts "Expired Weekly Cache"
于 2012-07-06T09:22:00.973 に答える