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.
168 169 170 |
# File 'lib/magick/rails/railtie.rb', line 168 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
172 173 174 175 176 177 178 179 180 |
# File 'lib/magick/rails/railtie.rb', line 172 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 |