diff options
Diffstat (limited to 'deps/rabbitmq_consistent_hash_exchange/examples/ruby/example3.rb')
-rw-r--r-- | deps/rabbitmq_consistent_hash_exchange/examples/ruby/example3.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/deps/rabbitmq_consistent_hash_exchange/examples/ruby/example3.rb b/deps/rabbitmq_consistent_hash_exchange/examples/ruby/example3.rb new file mode 100644 index 0000000000..dbd7956cf7 --- /dev/null +++ b/deps/rabbitmq_consistent_hash_exchange/examples/ruby/example3.rb @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby + +require 'bundler' +Bundler.setup(:default, :test) +require 'bunny' + +conn = Bunny.new +conn.start + +ch = conn.create_channel +ch.confirm_select + +q1 = ch.queue("q1", durable: true) +q2 = ch.queue("q2", durable: true) +q3 = ch.queue("q3", durable: true) +q4 = ch.queue("q4", durable: true) + +[q1, q2, q3, q4].each(&:purge) + +x = ch.exchange("x3", type: "x-consistent-hash", durable: true, arguments: {"hash-property" => "message_id"}) + +[q1, q2].each { |q| q.bind(x, routing_key: "1") } +[q3, q4].each { |q| q.bind(x, routing_key: "2") } + +n = 100_000 +(0..n).map(&:to_s).each do |i| + x.publish(i.to_s, routing_key: rand.to_s, message_id: i) +end + +ch.wait_for_confirms +puts "Done publishing!" + +# wait for queue stats to be emitted so that management UI numbers +# are up-to-date +sleep 5 +conn.close +puts "Done" |