class Sidekiq::Compress::ClientMiddleware

Should be in the client middleware chain

Public Instance Methods

call(worker, msg, queue, redis_pool) { || ... } click to toggle source
# File lib/sidekiq-compress/client_middleware.rb, line 6
def call(worker, msg, queue, redis_pool)
  klass = msg["args"][0]["job_class"] || msg["class"] rescue msg["class"]
  job_class = klass.is_a?(Class) ? klass : Module.const_get(klass)
  unless job_class.ancestors.include?(Sidekiq::Compress::Worker)
    yield
    return
  end

  compress_indexes = job_class.sidekiq_compress_params[0][:index] rescue []
  msg["args"] = Sidekiq::Compres::CompressParams.call(msg["args"], compress_indexes)
  yield
end