Class: Magick::SubscriberMiddleware
- Inherits:
-
Object
- Object
- Magick::SubscriberMiddleware
- Defined in:
- lib/magick/rails/railtie.rb
Overview
Ensures each process (including Puma workers forked under ‘preload_app!`) has a live Redis Pub/Sub subscriber for cross-process cache invalidation. `ensure_subscriber!` returns immediately once `@owner_pid == Process.pid`, so the per-request cost is a single pid comparison after the first call.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ SubscriberMiddleware
constructor
A new instance of SubscriberMiddleware.
Constructor Details
#initialize(app) ⇒ SubscriberMiddleware
Returns a new instance of SubscriberMiddleware.
165 166 167 |
# File 'lib/magick/rails/railtie.rb', line 165 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
169 170 171 172 173 174 175 176 177 |
# File 'lib/magick/rails/railtie.rb', line 169 def call(env) begin registry = Magick.adapter_registry registry.ensure_subscriber! if registry.respond_to?(:ensure_subscriber!) rescue StandardError # Best-effort: never break a request over subscriber bookkeeping. end @app.call(env) end |