bunny 2.13.0 → 2.14.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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