Sha256: f877991a4028d1db8853beab7fa7c8c3b7b25e248b18c59ffb3fa1a48786eaf7
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Sidekiq module Grouping class Middleware def call(worker_class, msg, queue, redis_pool = nil) worker_class = worker_class.camelize.constantize if worker_class.is_a?(String) options = worker_class.get_sidekiq_options batch = options.key?('batch_flush_size') || options.key?('batch_flush_interval') || options.key?('batch_size') passthrough = msg['args'] && msg['args'].is_a?(Array) && msg['args'].try(:first) == true retrying = msg["failed_at"].present? return yield unless batch if !(passthrough || retrying) add_to_batch(worker_class, queue, msg, redis_pool) else msg['args'].shift if passthrough yield end end private def add_to_batch(worker_class, queue, msg, redis_pool = nil) Sidekiq::Grouping::Batch .new(worker_class.name, queue, redis_pool) .add(msg['args']) nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-grouping-1.0.7 | lib/sidekiq/grouping/middleware.rb |