bunny 2.13.0 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +0,0 @@
1
- [
2
-
3
- {rabbit, [
4
- {ssl_listeners, [5671]},
5
- {ssl_options, [{cacertfile,"/spec/tls/ca_certificate.pem"},
6
- {certfile,"/spec/tls/server_certificate.pem"},
7
- {keyfile,"/spec/tls/server_key.pem"},
8
- {verify,verify_none},
9
- {fail_if_no_peer_cert,false}]},
10
- {loopback_users, []}
11
- ] },
12
-
13
- {rabbitmq_management,
14
- [{listener,
15
- [{port, 15672}]
16
- }]
17
- }
18
-
19
- ].
@@ -1,85 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "A message that is proxied by multiple intermediate consumers" do
4
- let(:c1) do
5
- c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed")
6
- c.start
7
- c
8
- end
9
-
10
- let(:c2) do
11
- c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed")
12
- c.start
13
- c
14
- end
15
-
16
- let(:c3) do
17
- c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed")
18
- c.start
19
- c
20
- end
21
-
22
- let(:c4) do
23
- c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed")
24
- c.start
25
- c
26
- end
27
-
28
- let(:c5) do
29
- c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed")
30
- c.start
31
- c
32
- end
33
-
34
- after :each do
35
- [c1, c2, c3, c4, c5].each do |c|
36
- c.close if c.open?
37
- end
38
- end
39
-
40
- # message flow is as follows:
41
- #
42
- # x => q4 => q3 => q2 => q1 => xs (results)
43
- it "reaches its final destination" do
44
- n = 10000
45
- xs = []
46
-
47
- ch1 = c1.create_channel
48
- q1 = ch1.queue("", exclusive: true)
49
- q1.subscribe do |_, _, payload|
50
- xs << payload
51
- end
52
-
53
- ch2 = c2.create_channel
54
- q2 = ch2.queue("", exclusive: true)
55
- q2.subscribe do |_, _, payload|
56
- q1.publish(payload)
57
- end
58
-
59
- ch3 = c3.create_channel
60
- q3 = ch2.queue("", exclusive: true)
61
- q3.subscribe do |_, _, payload|
62
- q2.publish(payload)
63
- end
64
-
65
- ch4 = c4.create_channel
66
- q4 = ch2.queue("", exclusive: true)
67
- q4.subscribe do |_, _, payload|
68
- q3.publish(payload)
69
- end
70
-
71
- ch5 = c5.create_channel
72
- x = ch5.default_exchange
73
-
74
- n.times do |i|
75
- x.publish("msg #{i}", routing_key: q4.name)
76
- end
77
-
78
- t = n / 1000 * 3.0
79
- puts "About to sleep for #{t} seconds..."
80
- sleep(t)
81
-
82
- expect(xs.size).to eq n
83
- expect(xs.last).to eq "msg #{n - 1}"
84
- end
85
- end
@@ -1,84 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require "spec_helper"
3
-
4
- unless ENV["CI"]
5
- require "bunny/concurrent/condition"
6
- require "bunny/test_kit"
7
-
8
- describe "Long running [relatively to heartbeat interval] consumer that never publishes" do
9
- before :all do
10
- @connection = Bunny.new(username: "bunny_gem",
11
- password: "bunny_password", vhost: "bunny_testbed",
12
- automatic_recovery: false, heartbeat_timeout: 6)
13
- @connection.start
14
- end
15
-
16
- after :all do
17
- @connection.close
18
- end
19
-
20
- let(:target) { 256 * 1024 * 1024 }
21
- let(:queue) { "bunny.stress.long_running_consumer.#{Time.now.to_i}" }
22
-
23
- let(:rate) { 50 }
24
- let(:s) { 4.0 }
25
-
26
-
27
-
28
- it "does not skip heartbeats" do
29
- finished = Bunny::Concurrent::Condition.new
30
-
31
- ct = Thread.new do
32
- t = 0
33
- ch = @connection.create_channel(nil, 6)
34
- begin
35
- q = ch.queue(queue, exclusive: true)
36
-
37
- q.bind("amq.fanout").subscribe do |_, _, payload|
38
- t += payload.bytesize
39
-
40
- if t >= target
41
- puts "Hit the target, done with the test..."
42
-
43
- finished.notify_all
44
- else
45
- puts "Consumed #{(t.to_f / target.to_f).round(3) * 100}% of data"
46
- end
47
- end
48
- rescue Interrupt => e
49
- ch.maybe_kill_consumer_work_pool!
50
- ch.close rescue nil
51
- end
52
- end
53
- ct.abort_on_exception = true
54
-
55
- pt = Thread.new do
56
- t = 0
57
- ch = @connection.create_channel
58
- begin
59
- x = ch.fanout("amq.fanout")
60
-
61
- loop do
62
- break if t >= target
63
-
64
- rate.times do |i|
65
- msg = Bunny::TestKit.message_in_kb(96, 8192, i)
66
- x.publish(msg)
67
- t += msg.bytesize
68
- end
69
-
70
- sleep (s * rand)
71
- end
72
- rescue Interrupt => e
73
- ch.close rescue nil
74
- end
75
- end
76
- pt.abort_on_exception = true
77
-
78
- finished.wait
79
-
80
- ct.raise Interrupt.new
81
- pt.raise Interrupt.new
82
- end
83
- end
84
- end