Class: Batsir::Acceptors::AMQPAcceptor
- Includes:
- Batsir::AMQP, Log
- Defined in:
- lib/batsir/acceptors/amqp_acceptor.rb
Instance Attribute Summary collapse
-
#consumer ⇒ Object
readonly
Returns the value of attribute consumer.
-
#consumer_source ⇒ Object
writeonly
Sets the attribute consumer_source.
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
- #handle_delivery(payload) ⇒ Object
-
#initialize(options = {}) ⇒ AMQPAcceptor
constructor
A new instance of AMQPAcceptor.
- #process_message_error(message, error) ⇒ Object
- #start ⇒ Object
Methods included from 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(={}) super @bunny = Bunny.new().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
#consumer ⇒ Object (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
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 (, error) log.error error. nil end |
#start ⇒ Object
24 25 26 |
# File 'lib/batsir/acceptors/amqp_acceptor.rb', line 24 def start @q.subscribe_with(@consumer) end |