Commit 294dfe15ca4002ff2c6c6f2e83e59e042ac973ba
1 parent
b5fdacd1
Exists in
master
and in
4 other branches
added connection fix initializer, helps long running resque workers not fail
Showing
1 changed file
with
19 additions
and
2 deletions
Show diff stats
config/initializers/connection_fix.rb
1 | +# from http://gist.github.com/238999 | ||
2 | +# | ||
3 | +# If your workers are inactive for a long period of time, they'll lose | ||
4 | +# their MySQL connection. | ||
5 | +# | ||
6 | +# This hack ensures we re-connect whenever a connection is | ||
7 | +# lost. Because, really. why not? | ||
8 | +# | ||
9 | +# Stick this in RAILS_ROOT/config/initializers/connection_fix.rb (or somewhere similar) | ||
10 | +# | ||
11 | +# From: | ||
12 | +# http://coderrr.wordpress.com/2009/01/08/activerecord-threading-issues-and-resolutions/ | ||
13 | + | ||
1 | if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) | 14 | if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) |
15 | + | ||
2 | module ActiveRecord::ConnectionAdapters | 16 | module ActiveRecord::ConnectionAdapters |
17 | + | ||
3 | class Mysql2Adapter | 18 | class Mysql2Adapter |
4 | alias_method :execute_without_retry, :execute | 19 | alias_method :execute_without_retry, :execute |
5 | 20 | ||
6 | def execute(*args) | 21 | def execute(*args) |
7 | execute_without_retry(*args) | 22 | execute_without_retry(*args) |
8 | - rescue Mysql2::Error => e | 23 | + rescue ActiveRecord::StatementInvalid => e |
9 | if e.message =~ /server has gone away/i | 24 | if e.message =~ /server has gone away/i |
10 | warn "Server timed out, retrying" | 25 | warn "Server timed out, retrying" |
11 | reconnect! | 26 | reconnect! |
@@ -15,5 +30,7 @@ if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) | @@ -15,5 +30,7 @@ if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) | ||
15 | end | 30 | end |
16 | end | 31 | end |
17 | end | 32 | end |
33 | + | ||
18 | end | 34 | end |
19 | -end | ||
20 | \ No newline at end of file | 35 | \ No newline at end of file |
36 | + | ||
37 | +end |