diff --git a/Gemfile b/Gemfile index 5da6426b6ed..67797362f19 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ gem 'high_voltage' gem 'highline' gem 'jquery-rails' gem 'mail' -gem 'memcached' +gem 'dalli' gem 'multi_json' gem 'paul_revere' gem 'pg' diff --git a/Gemfile.lock b/Gemfile.lock index d5f89a79966..3e7a4deb03c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,6 +73,7 @@ GEM cucumber (>= 1.1.8) nokogiri (>= 1.5.0) daemons (1.1.9) + dalli (2.3.0) database_cleaner (0.9.1) delayed_job (3.0.3) activesupport (~> 3.0) @@ -128,7 +129,6 @@ GEM i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) - memcached (1.4.6) method_source (0.8.1) mime-types (1.19) multi_json (1.3.7) @@ -254,6 +254,7 @@ DEPENDENCIES clearance cucumber-rails daemons + dalli database_cleaner delayed_job delayed_job_active_record @@ -270,7 +271,6 @@ DEPENDENCIES jruby-openssl launchy mail - memcached multi_json newrelic-redis newrelic_rpm diff --git a/app/middleware/api_v1_depedencies.rb b/app/middleware/api_v1_depedencies.rb index 374f4f93315..673dee9117b 100644 --- a/app/middleware/api_v1_depedencies.rb +++ b/app/middleware/api_v1_depedencies.rb @@ -1,11 +1,11 @@ -require 'memcached' +require 'dalli' class V1MarshaledDepedencies LIMIT = 250 BadRequest = [404, {}, ["Go away"]] - TooMany = [413, {}, + TooMany = [413, {}, ["Too many gems to resolve, please request less than #{LIMIT}"]] def data_for(name, ary, cache) @@ -34,7 +34,7 @@ def data_for(name, ary, cache) ary end - CACHE = Memcached.new("localhost:11211") + CACHE = Dalli::Client.new("localhost:11211") def call(env) request = Rack::Request.new(env) @@ -55,14 +55,16 @@ def call(env) gems.each do |g| begin data = cache.get "gem.#{g}" - ary += Marshal.load(data) - rescue Memcached::NotFound - begin - data_for g, ary, cache - rescue - return BadRequest + if data + ary += Marshal.load(data) + else + begin + data_for g, ary, cache + rescue + return BadRequest + end end - rescue Memcached::ServerIsMarkedDead + rescue Dalli::RingError begin data_for g, ary, nil rescue diff --git a/vendor/cache/dalli-2.3.0.gem b/vendor/cache/dalli-2.3.0.gem new file mode 100644 index 00000000000..2520ba893f4 Binary files /dev/null and b/vendor/cache/dalli-2.3.0.gem differ diff --git a/vendor/cache/memcached-1.4.6.gem b/vendor/cache/memcached-1.4.6.gem deleted file mode 100644 index e735a5d917a..00000000000 Binary files a/vendor/cache/memcached-1.4.6.gem and /dev/null differ