Class: Batsir::Acceptors::AMQPAcceptor

Inherits:
Acceptor
  • Object
show all
Includes:
Batsir::AMQP, Log
Defined in:
lib/batsir/acceptors/amqp_acceptor.rb

Instance Attribute Summary collapse

Attributes included from Batsir::AMQP

#durable, #exchange, #heartbeat, #host, #password, #port, #queue, #username, #vhost

Attributes inherited from Acceptor

#cancellator, #stage_name, #transformer_queue

Instance Method Summary collapse

Methods included from Log

#log

Methods included from Batsir::AMQP

#bunny_options, #bunny_pool, #bunny_pool_key, #bunny_pool_size

Methods inherited from Acceptor

#add_transformer, #start_filter_chain, #transform

Constructor Details

#initialize(options = {}) ⇒ AMQPAcceptor

Returns a new instance of AMQPAcceptor.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 12

def initialize(options={})
  super
  @bunny = Bunny.new(bunny_options).start
  @channel = @bunny.create_channel
  @q = @channel.queue( queue, :durable => durable )

  @consumer = consumer_source.call(self, @channel, @q)
  @consumer.on_delivery() do |delivery_info, , payload|
    handle_delivery(payload)
  end
end

Instance Attribute Details

#consumerObject (readonly)

Returns the value of attribute consumer.



9
10
11
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 9

def consumer
  @consumer
end

#consumer_source=(value) ⇒ Object

Sets the attribute consumer_source

Parameters:

  • value

    the value to set the attribute consumer_source to.



10
11
12
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 10

def consumer_source=(value)
  @consumer_source = value
end

Instance Method Details

#handle_delivery(payload) ⇒ Object



28
29
30
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 28

def handle_delivery(payload)
  start_filter_chain(payload)
end

#process_message_error(message, error) ⇒ Object



32
33
34
35
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 32

def process_message_error(message, error)
  log.error error.message
  nil
end

#startObject



24
25
26
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 24

def start
  @q.subscribe_with(@consumer)
end