class WorkerKiller::Middleware

Attributes

killer[R]
limiter[R]
reaction[R]

Public Class Methods

new(app, killer:, klass:, reaction: nil, **opts) click to toggle source
# File lib/worker_killer/middleware.rb, line 9
def initialize(app, killer:, klass:, reaction: nil, **opts)
  @app = app
  @killer = killer

  @reaction = reaction || proc do |l, k|
    k.kill(l.started_at)
  end

  @limiter = klass.new(opts)
end

Public Instance Methods

call(env) click to toggle source
# File lib/worker_killer/middleware.rb, line 20
def call(env)
  @app.call(env)
ensure
  reaction.call(limiter, killer) if limiter.check
end