Commit 28f2a9eb by Jim Abramson

Merge pull request #75 from edx/feature/jsa/mongoid-retry

Fail fast when database is unreachable
parents 1ae94b55 04aa4362
...@@ -18,7 +18,7 @@ gem 'ampex' ...@@ -18,7 +18,7 @@ gem 'ampex'
gem 'mongo' gem 'mongo'
gem 'moped', "1.5.1" gem 'moped', "1.5.1"
gem 'mongoid', "~> 3.0" gem 'mongoid', "3.0.15"
gem 'bson_ext' gem 'bson_ext'
gem 'delayed_job' gem 'delayed_job'
......
...@@ -67,7 +67,7 @@ GEM ...@@ -67,7 +67,7 @@ GEM
bson (1.6.4) bson (1.6.4)
bson_ext (1.6.4) bson_ext (1.6.4)
bson (~> 1.6.4) bson (~> 1.6.4)
builder (3.0.0) builder (3.0.4)
coderay (1.0.7) coderay (1.0.7)
dalli (2.1.0) dalli (2.1.0)
delayed_job (3.0.3) delayed_job (3.0.3)
...@@ -83,7 +83,7 @@ GEM ...@@ -83,7 +83,7 @@ GEM
guard (>= 1.1) guard (>= 1.1)
hashr (0.0.21) hashr (0.0.21)
hike (1.2.1) hike (1.2.1)
i18n (0.6.0) i18n (0.6.9)
journey (1.0.4) journey (1.0.4)
kgio (2.7.4) kgio (2.7.4)
listen (0.5.0) listen (0.5.0)
...@@ -91,19 +91,19 @@ GEM ...@@ -91,19 +91,19 @@ GEM
mime-types (1.19) mime-types (1.19)
mongo (1.6.4) mongo (1.6.4)
bson (~> 1.6.4) bson (~> 1.6.4)
mongoid (3.0.4) mongoid (3.0.15)
activemodel (~> 3.1) activemodel (~> 3.1)
moped (~> 1.1) moped (~> 1.1)
origin (~> 1.0) origin (~> 1.0)
tzinfo (~> 0.3.22) tzinfo (~> 0.3.22)
moped (1.5.1) moped (1.5.1)
multi_json (1.3.6) multi_json (1.8.2)
newrelic_moped (0.0.6) newrelic_moped (0.0.6)
moped moped
newrelic_rpm (~> 3.6.0) newrelic_rpm (~> 3.6.0)
newrelic_rpm (3.6.8.164) newrelic_rpm (3.6.8.164)
nokogiri (1.5.5) nokogiri (1.5.5)
origin (1.0.6) origin (1.1.0)
pry (0.9.10) pry (0.9.10)
coderay (~> 1.0.5) coderay (~> 1.0.5)
method_source (~> 0.8) method_source (~> 0.8)
...@@ -154,7 +154,7 @@ GEM ...@@ -154,7 +154,7 @@ GEM
rest-client (~> 1.6) rest-client (~> 1.6)
tire-contrib (0.1.1) tire-contrib (0.1.1)
tire tire
tzinfo (0.3.33) tzinfo (0.3.38)
unicorn (4.3.1) unicorn (4.3.1)
kgio (~> 2.6) kgio (~> 2.6)
rack rack
...@@ -180,7 +180,7 @@ DEPENDENCIES ...@@ -180,7 +180,7 @@ DEPENDENCIES
guard-unicorn guard-unicorn
kaminari! kaminari!
mongo mongo
mongoid (~> 3.0) mongoid (= 3.0.15)
mongoid-tree! mongoid-tree!
mongoid_magic_counter_cache! mongoid_magic_counter_cache!
mongoid_taggable_with_context! mongoid_taggable_with_context!
......
...@@ -11,48 +11,40 @@ test: ...@@ -11,48 +11,40 @@ test:
hosts: hosts:
- localhost:27017 - localhost:27017
common: &default_session
uri: <%= ENV['MONGOHQ_URL'] %>
options:
skip_version_check: true
safe: true
consistency: strong
max_retries: <%= ENV['MONGOID_MAX_RETRIES'] || 1 %>
retry_interval: <%= ENV['MONGOID_RETRY_INTERVAL'] || 0 %>
timeout: <%= ENV['MONGOID_TIMEOUT'] || 0.5 %>
production: production:
sessions: sessions:
default: default:
uri: <%= ENV['MONGOHQ_URL'] %> <<: *default_session
options:
skip_version_check: true
safe: true
consistency: strong
edgeprod: edgeprod:
sessions: sessions:
default: default:
uri: <%= ENV['MONGOHQ_URL'] %> <<: *default_session
options:
skip_version_check: true
safe: true
consistency: strong
edgestage: edgestage:
sessions: sessions:
default: default:
uri: <%= ENV['MONGOHQ_URL'] %> <<: *default_session
options:
skip_version_check: true
safe: true
consistency: strong
staging: staging:
sessions: sessions:
default: default:
uri: <%= ENV['MONGOHQ_URL'] %> <<: *default_session
loadtest: loadtest:
sessions: sessions:
default: default:
uri: <%= ENV['MONGOHQ_URL'] %> <<: *default_session
options:
skip_version_check: true
safe: true
consistency: strong
max_retries: 1
retry_interval: 1
defaults: &defaults defaults: &defaults
use_utc: false use_utc: false
......
...@@ -2,6 +2,16 @@ worker_processes 4 ...@@ -2,6 +2,16 @@ worker_processes 4
timeout 25 timeout 25
preload_app true preload_app true
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
end
after_fork do |server, worker| after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Waiting for master to send QUIT'
end
::Mongoid.default_session.disconnect ::Mongoid.default_session.disconnect
end end
...@@ -299,7 +299,7 @@ helpers do ...@@ -299,7 +299,7 @@ helpers do
add_method_tracer :thread add_method_tracer :thread
add_method_tracer :comment add_method_tracer :comment
add_method_tracer :flag_as_abuse add_method_tracer :flag_as_abuse
add_method_tracer :unflag_as_abuse add_method_tracer :un_flag_as_abuse
add_method_tracer :author_contents_only add_method_tracer :author_contents_only
add_method_tracer :handle_threads_query add_method_tracer :handle_threads_query
......
...@@ -309,7 +309,9 @@ private ...@@ -309,7 +309,9 @@ private
subscriptions.delete_all subscriptions.delete_all
end end
include ::NewRelic::Agent::MethodTracer class << self
add_method_tracer :perform_search include ::NewRelic::Agent::MethodTracer
add_method_tracer :perform_search, 'Custom/perform_search'
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment