Sha256: 7da16b1ff70373ae0d13187aef7508c6baa4e1b8413b4c33f9b8ca14dc119077

Contents?: true

Size: 666 Bytes

Versions: 6

Compression:

Stored size: 666 Bytes

Contents

module AtomicSidekiq
  module AtomicOperation
    class Retrieve < Base
      RETRIEVE_SCRIPT = File.read(
        File.join(File.dirname(__FILE__),
                  "./lua_scripts/retrieve.lua")
      )

      def perform(queues, expire_at)
        queues.each do |queue|
          res = retrieve_from_queue(queue, expire_at.to_i)
          return res if res
        end
        nil
      end

      private

      def retrieve_from_queue(queue, expire_at)
        in_flight_prefix = in_flight_keymaker.queue_prefix(queue)
        redis do |conn|
          conn.eval(RETRIEVE_SCRIPT, [queue, in_flight_prefix], [expire_at])
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
atomic-sidekiq-1.3.0 lib/atomic_sidekiq/atomic_operation/retrieve.rb
atomic-sidekiq-1.2.0 lib/atomic_sidekiq/atomic_operation/retrieve.rb
atomic-sidekiq-1.1.4 lib/atomic_sidekiq/atomic_operation/retrieve.rb
atomic-sidekiq-1.1.3 lib/atomic_sidekiq/atomic_operation/retrieve.rb
atomic-sidekiq-1.1.2 lib/atomic_sidekiq/atomic_operation/retrieve.rb
atomic-sidekiq-1.1.0 lib/atomic_sidekiq/atomic_operation/retrieve.rb