Sha256: f3e0b8cdccfc48423846e5241640f0299519c361444dfcdf2a9ebd0ef9d3a93c

Contents?: true

Size: 706 Bytes

Versions: 2

Compression:

Stored size: 706 Bytes

Contents

require_relative "merge"

class Sidekiq::Merger::Middleware
  def call(worker_class, msg, queue, _ = nil)
    return yield if defined?(Sidekiq::Testing) && Sidekiq::Testing.inline?

    worker_class = worker_class.camelize.constantize if worker_class.is_a?(String)
    options = worker_class.get_sidekiq_options

    merger_enabled = options.key?("merger")

    return yield unless merger_enabled

    if !msg["at"].nil? && msg["at"].to_f > Time.now.to_f
      Sidekiq::Merger::Merge
        .initialize_with_args(worker_class, queue, msg["args"])
        .add(msg["args"], msg["at"])
      false
    else
      msg["args"] = [msg["args"].flatten] unless msg.delete("merged")
      yield
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sidekiq-merger-0.1.0 lib/sidekiq/merger/middleware.rb
sidekiq-merger-0.0.12 lib/sidekiq/merger/middleware.rb