Class: Listenable::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- Listenable::Railtie
- Defined in:
- lib/listenable/railtie.rb
Constant Summary collapse
- AFTER_COMMIT_MAP =
{ 'created' => :create, 'updated' => :update, 'destroyed' => :destroy }.freeze
Class Method Summary collapse
- .handle_async_listener(listener_class, method, record_class, record_id) ⇒ Object
- .handle_sync_listener(listener_class, method, record_class, record_id) ⇒ Object
Class Method Details
.handle_async_listener(listener_class, method, record_class, record_id) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/listenable/railtie.rb', line 99 def handle_async_listener(listener_class, method, record_class, record_id) Concurrent::Promises.future_on(Listenable.async_executor) do ActiveRecord::Base.connection_pool.with_connection do execute_listener(listener_class, method, record_class, record_id) end rescue ActiveRecord::ConnectionTimeoutError => e Rails.logger&.error( "[Listenable] DB pool exhausted for #{listener_class}##{method}: #{e.}" ) rescue StandardError => e log_error(listener_class, method, e) end end |
.handle_sync_listener(listener_class, method, record_class, record_id) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/listenable/railtie.rb', line 113 def handle_sync_listener(listener_class, method, record_class, record_id) execute_listener(listener_class, method, record_class, record_id) rescue StandardError => e log_error(listener_class, method, e) raise end |