Sha256: 3c177a38bae75d7e3777091ff09ff9bb1760eb7cd2942a3c99cbc0ce96ad2372

Contents?: true

Size: 870 Bytes

Versions: 6

Compression:

Stored size: 870 Bytes

Contents

# frozen_string_literal: true

require 'sidekiq_unique_jobs/server/middleware'

module SidekiqUniqueJobs
  module Client
    class Middleware
      include SidekiqUniqueJobs::Logging
      include OptionsWithFallback

      # :reek:LongParameterList { max_params: 4 }
      def call(worker_class, item, queue, redis_pool = nil)
        @worker_class = worker_class
        @item         = item
        @queue        = queue
        @redis_pool   = redis_pool

        yield if success?
      end

      private

      attr_reader :item

      def success?
        unique_disabled? || locked?
      end

      def locked?
        locked = lock.lock
        warn_about_duplicate unless locked
        locked
      end

      def warn_about_duplicate
        return unless log_duplicate_payload?
        log_warn "payload is not unique #{item}"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-6.0.0.rc6 lib/sidekiq_unique_jobs/client/middleware.rb
sidekiq-unique-jobs-6.0.0.rc5 lib/sidekiq_unique_jobs/client/middleware.rb
sidekiq-unique-jobs-6.0.0.rc4 lib/sidekiq_unique_jobs/client/middleware.rb
sidekiq-unique-jobs-6.0.0.rc3 lib/sidekiq_unique_jobs/client/middleware.rb
sidekiq-unique-jobs-6.0.0.rc2 lib/sidekiq_unique_jobs/client/middleware.rb
sidekiq-unique-jobs-6.0.0.rc1 lib/sidekiq_unique_jobs/client/middleware.rb