class Sidekiq::Batch::Middleware::ServerMiddleware

Public Instance Methods

call(_worker, msg, _queue) { || ... } click to toggle source
# File lib/sidekiq/batch/middleware.rb, line 16
def call(_worker, msg, _queue)
  if (bid = msg['bid'])
    begin
      Thread.current[:batch] = Sidekiq::Batch.new(bid)
      yield
      Thread.current[:batch] = nil
      Batch.process_successful_job(bid, msg['jid'])
    rescue
      Batch.process_failed_job(bid, msg['jid'])
      raise
    ensure
      Thread.current[:batch] = nil
    end
  else
    yield
  end
end