diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2015-07-08 22:36:29 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2015-07-08 22:49:34 +0200 |
commit | e584f49e867de8355fd455e3429d73c3e245dbc7 (patch) | |
tree | 42e1924fdb1bb66bfac48c3617902bde01ab9d62 /lib/action_cable/server/worker | |
parent | a1200616cc22ad266537e31a808a1e90bf4da79f (diff) | |
download | rails-e584f49e867de8355fd455e3429d73c3e245dbc7.tar.gz rails-e584f49e867de8355fd455e3429d73c3e245dbc7.tar.bz2 rails-e584f49e867de8355fd455e3429d73c3e245dbc7.zip |
Include the clearing of database connections configuration by default
Diffstat (limited to 'lib/action_cable/server/worker')
-rw-r--r-- | lib/action_cable/server/worker/clear_database_connections.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/action_cable/server/worker/clear_database_connections.rb b/lib/action_cable/server/worker/clear_database_connections.rb new file mode 100644 index 0000000000..722d363a41 --- /dev/null +++ b/lib/action_cable/server/worker/clear_database_connections.rb @@ -0,0 +1,22 @@ +module ActionCable + module Server + class Worker + # Clear active connections between units of work so the long-running channel or connection processes do not hoard connections. + module ClearDatabaseConnections + extend ActiveSupport::Concern + + included do + if defined?(ActiveRecord::Base) + set_callback :work, :around, :with_database_connections + end + end + + def with_database_connections + yield + ensure + ActiveRecord::Base.clear_active_connections! + end + end + end + end +end
\ No newline at end of file |