Sha256: 8c358e739fd78fe17f2c4d35a40d0b4f0531aeb1c116aa1797df6d5daab07bc0

Contents?: true

Size: 1.02 KB

Versions: 19

Compression:

Stored size: 1.02 KB

Contents

$:.unshift File.dirname(__FILE__) + '/../../lib'
require 'mq'

# For ack to work appropriately you must shutdown AMQP gracefully,
# otherwise all items in your queue will be returned
Signal.trap('INT') { AMQP.stop{ EM.stop } }
Signal.trap('TERM'){ AMQP.stop{ EM.stop } }

AMQP.start(:host => 'localhost') do
  MQ.queue('awesome').publish('Totally rad 1')
  MQ.queue('awesome').publish('Totally rad 2')
  MQ.queue('awesome').publish('Totally rad 3')

  i = 0

  # Stopping after the second item was acked will keep the 3rd item in the queue
  MQ.queue('awesome').subscribe(:ack => true) do |h,m|
    if (i+=1) == 3
      puts 'Shutting down...'
      AMQP.stop{ EM.stop }
    end

    if AMQP.closing?
      puts "#{m} (ignored, redelivered later)"
    else
      puts m
      h.ack
    end
  end
end

__END__

Totally rad 1
Totally rad 2
Shutting down...
Totally rad 3 (ignored, redelivered later)

When restarted:

Totally rad 3
Totally rad 1
Shutting down...
Totally rad 2 (ignored, redelivered later)
Totally rad 3 (ignored, redelivered later)

Version data entries

19 entries across 19 versions & 6 rubygems

Version Path
adamh-amqp-0.6.3.1 examples/mq/ack.rb
brontes3d-amqp-0.6.4.0 examples/mq/ack.rb
brontes3d-amqp-0.6.4.1 examples/mq/ack.rb
brontes3d-amqp-0.6.4.2 examples/mq/ack.rb
brontes3d-amqp-0.6.4.3 examples/mq/ack.rb
brontes3d-amqp-0.6.4 examples/mq/ack.rb
fotonauts-amqp-0.6.1 examples/mq/ack.rb
fotonauts-amqp-0.6.4 examples/mq/ack.rb
tmm1-amqp-0.6.1 examples/mq/ack.rb
tmm1-amqp-0.6.3 examples/mq/ack.rb
tmm1-amqp-0.6.4 examples/mq/ack.rb
amqp-0.7.0.pre examples/mq/ack.rb
totty-amqp-0.6.7.1 examples/mq/ack.rb
totty-amqp-0.6.7.1.totty examples/mq/ack.rb
brontes3d-amqp-0.6.7.1 examples/mq/ack.rb
amqp-0.6.7 examples/mq/ack.rb
amqp-0.6.6 examples/mq/ack.rb
amqp-0.6.5 examples/mq/ack.rb
amqp-0.6.4 examples/mq/ack.rb