Sha256: 054c0f4d0bf076181f108c2ccbff630b44e68bc6e52f90d1fe86e4b2b7f71634

Contents?: true

Size: 627 Bytes

Versions: 5

Compression:

Stored size: 627 Bytes

Contents

module AtomicSidekiq
  class InFlightKeymaker
    def initialize(key_prefix)
      @key_prefix = key_prefix
    end

    def matcher
      "#{key_prefix}:*"
    end

    def queue_prefix(queue)
      normalized_name = queue.gsub(/queue:/, "")
      "#{key_prefix}:#{normalized_name}:"
    end

    def queue_matcher(queue)
      "#{queue_prefix(queue)}*"
    end

    def job_key(job)
      obj = job
      obj = JSON.parse(obj) if job.is_a?(String)
      "#{key_prefix}:#{obj['queue']}:#{obj['jid']}"
    end

    def job_matcher(jid)
      "#{key_prefix}:*:#{jid}"
    end

    private

    attr_reader :key_prefix
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
atomic-sidekiq-1.3.0 lib/atomic_sidekiq/in_flight_keymaker.rb
atomic-sidekiq-1.2.0 lib/atomic_sidekiq/in_flight_keymaker.rb
atomic-sidekiq-1.1.4 lib/atomic_sidekiq/in_flight_keymaker.rb
atomic-sidekiq-1.1.3 lib/atomic_sidekiq/in_flight_keymaker.rb
atomic-sidekiq-1.1.2 lib/atomic_sidekiq/in_flight_keymaker.rb