Sha256: 23f03d4f0ede1d1de40fe2cad86b7d8bb618308872ab9f0beaf756a4fd795ee2

Contents?: true

Size: 543 Bytes

Versions: 2

Compression:

Stored size: 543 Bytes

Contents

require 'jobi/runner'
require 'bunny'

module Jobi
  module Consumers
    class Rabbitmq
      def initialize(queue:, ack:)
        @queue = queue
        @ack = ack
      end

      def consume!
        @queue.subscribe(manual_ack: @ack) do |delivery_info, metadata, payload|
          Jobi::Runner.new(payload: payload).run
          acknowledge!(delivery_info.delivery_tag) if @ack
        end
      end

      private

      def acknowledge!(delivery_tag)
        @queue.channel.acknowledge(delivery_tag, false)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jobi-0.2.1 lib/jobi/consumers/rabbitmq.rb
jobi-0.1.1 lib/jobi/consumers/rabbitmq.rb