Sha256: f1ac2dbe07ae9d85a58a3fe813f223aab25f8e2adce6f68437d25256c817c24b

Contents?: true

Size: 820 Bytes

Versions: 11

Compression:

Stored size: 820 Bytes

Contents

module Eventboss
  class Fetcher
    FETCH_LIMIT = 10 # maximum possible for SQS

    attr_reader :client

    def initialize(configuration)
      @client = configuration.sqs_client
    end

    def fetch(queue, limit)
      @client.receive_message(queue_url: queue.url, max_number_of_messages: max_no_of_messages(limit)).messages
    end

    def delete(queue, message)
      @client.delete_message(queue_url: queue.url, receipt_handle: message.receipt_handle)
    end

    def change_message_visibility(queue, message, visibility_timeout)
      @client.change_message_visibility(
        queue_url: queue.url,
        receipt_handle: message.receipt_handle,
        visibility_timeout: visibility_timeout
      )
    end

    private

    def max_no_of_messages(limit)
      [limit, FETCH_LIMIT].min
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
eventboss-1.1.3 lib/eventboss/fetcher.rb
eventboss-1.1.2 lib/eventboss/fetcher.rb
eventboss-1.1.1 lib/eventboss/fetcher.rb
eventboss-1.1.0 lib/eventboss/fetcher.rb
eventboss-1.0.6 lib/eventboss/fetcher.rb
eventboss-1.0.5 lib/eventboss/fetcher.rb
eventboss-1.0.4 lib/eventboss/fetcher.rb
eventboss-1.0.3 lib/eventboss/fetcher.rb
eventboss-1.0.2 lib/eventboss/fetcher.rb
eventboss-1.0.1 lib/eventboss/fetcher.rb
eventboss-1.0.0 lib/eventboss/fetcher.rb