Class: Fly::RegionalDatabase::DbExceptionHandlerMiddleware
- Inherits:
-
Object
- Object
- Fly::RegionalDatabase::DbExceptionHandlerMiddleware
- Defined in:
- lib/fly-ruby/regional_database.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ DbExceptionHandlerMiddleware
constructor
A new instance of DbExceptionHandlerMiddleware.
Constructor Details
#initialize(app) ⇒ DbExceptionHandlerMiddleware
Returns a new instance of DbExceptionHandlerMiddleware.
29 30 31 |
# File 'lib/fly-ruby/regional_database.rb', line 29 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fly-ruby/regional_database.rb', line 33 def call(env) exceptions = Fly.configuration.replayable_exception_classes @app.call(env) rescue *exceptions, ActiveRecord::RecordInvalid => e if exceptions.any? {|ex| e.is_a?(ex) } || exceptions.any? { e&.cause&.is_a?(e) } RegionalDatabase.replay_in_primary_region!(state: "captured_write") else raise e end end |