amqp-boilerplate 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -0
- data/lib/amqp/boilerplate/version.rb +1 -1
- data/lib/amqp/boilerplate.rb +16 -4
- data/spec/amqp/boilerplate_spec.rb +37 -5
- metadata +4 -4
data/CHANGELOG
CHANGED
data/lib/amqp/boilerplate.rb
CHANGED
@@ -13,9 +13,16 @@ module AMQP
|
|
13
13
|
extend ConsumerRegistry
|
14
14
|
extend Logging
|
15
15
|
|
16
|
+
# Opens a channel to AMQP and starts all consumers
|
17
|
+
#
|
18
|
+
# NOTE When an unknown server type is encountered the consumers will NOT be
|
19
|
+
# started. A channel will be opened for the producers though.
|
20
|
+
#
|
21
|
+
# @see AMQP::Utilities::EventLoopHelper
|
22
|
+
# @return [void]
|
16
23
|
def self.boot
|
17
|
-
if
|
18
|
-
PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
24
|
+
if AMQP::Utilities::EventLoopHelper.server_type == :passenger
|
25
|
+
::PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
19
26
|
if forked
|
20
27
|
Thread.new do
|
21
28
|
AMQP::Boilerplate.start
|
@@ -30,13 +37,18 @@ module AMQP
|
|
30
37
|
|
31
38
|
sleep(0.25)
|
32
39
|
|
33
|
-
AMQP::Boilerplate.logger.info("[#{self.name}.boot] Started AMQP (Server Type: #{AMQP::Utilities::EventLoopHelper.server_type})")
|
40
|
+
AMQP::Boilerplate.logger.info("[#{self.name}.boot] Started AMQP (Server Type: #{AMQP::Utilities::EventLoopHelper.server_type || 'unknown'})")
|
34
41
|
|
35
42
|
EventMachine.next_tick do
|
36
43
|
AMQP.channel ||= AMQP::Channel.new(AMQP.connection)
|
37
44
|
|
38
45
|
load_consumers
|
39
|
-
|
46
|
+
|
47
|
+
if AMQP::Utilities::EventLoopHelper.server_type
|
48
|
+
start_consumers
|
49
|
+
else
|
50
|
+
AMQP::Boilerplate.logger.debug("[#{self.name}.boot] Unknown server type, not starting consumers")
|
51
|
+
end
|
40
52
|
end
|
41
53
|
end
|
42
54
|
|
@@ -22,11 +22,6 @@ describe AMQP::Boilerplate do
|
|
22
22
|
AMQP::Boilerplate.boot
|
23
23
|
end
|
24
24
|
|
25
|
-
it "should start all consumers" do
|
26
|
-
AMQP::Boilerplate.should_receive(:start_consumers)
|
27
|
-
AMQP::Boilerplate.boot
|
28
|
-
end
|
29
|
-
|
30
25
|
it "should connect to AMQP" do
|
31
26
|
AMQP::Boilerplate.should_receive(:start)
|
32
27
|
AMQP::Boilerplate.boot
|
@@ -37,15 +32,47 @@ describe AMQP::Boilerplate do
|
|
37
32
|
AMQP::Boilerplate.boot
|
38
33
|
end
|
39
34
|
|
35
|
+
describe "when server type is unknown" do
|
36
|
+
before(:each) do
|
37
|
+
AMQP::Utilities::EventLoopHelper.stub(:server_type).and_return(nil)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should not start consumers" do
|
41
|
+
AMQP::Boilerplate.should_not_receive(:start_consumers)
|
42
|
+
AMQP::Boilerplate.boot
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should log server type as 'unknown'" do
|
46
|
+
AMQP::Boilerplate.logger.should_receive(:info).with(/Server Type: unknown/)
|
47
|
+
AMQP::Boilerplate.boot
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should log that consumers are not loaded" do
|
51
|
+
AMQP::Boilerplate.logger.should_receive(:debug).with(/Unknown server type, not starting consumers/)
|
52
|
+
AMQP::Boilerplate.boot
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
40
56
|
describe "wen not using passenger" do
|
57
|
+
before(:each) do
|
58
|
+
AMQP::Utilities::EventLoopHelper.stub(:server_type).and_return(:mongrel)
|
59
|
+
end
|
60
|
+
|
41
61
|
it "should use built-in EventLoopHelper" do
|
42
62
|
AMQP::Utilities::EventLoopHelper.should_receive(:run)
|
43
63
|
AMQP::Boilerplate.boot
|
44
64
|
end
|
65
|
+
|
66
|
+
it "should start all consumers" do
|
67
|
+
AMQP::Boilerplate.should_receive(:start_consumers)
|
68
|
+
AMQP::Boilerplate.boot
|
69
|
+
end
|
45
70
|
end
|
46
71
|
|
47
72
|
describe "when using passenger" do
|
48
73
|
before(:each) do
|
74
|
+
AMQP::Utilities::EventLoopHelper.stub(:server_type).and_return(:passenger)
|
75
|
+
|
49
76
|
PhusionPassenger = Class.new
|
50
77
|
PhusionPassenger.stub(:on_event).and_yield(true)
|
51
78
|
|
@@ -58,6 +85,11 @@ describe AMQP::Boilerplate do
|
|
58
85
|
Object.send(:remove_const, "PhusionPassenger")
|
59
86
|
end
|
60
87
|
|
88
|
+
it "should start all consumers" do
|
89
|
+
AMQP::Boilerplate.should_receive(:start_consumers)
|
90
|
+
AMQP::Boilerplate.boot
|
91
|
+
end
|
92
|
+
|
61
93
|
it "should register to starting_worker_process event" do
|
62
94
|
PhusionPassenger.should_receive(:on_event).with(:starting_worker_process)
|
63
95
|
AMQP::Boilerplate.boot
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amqp-boilerplate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 8
|
10
|
+
version: 0.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Patrick Baselier
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-09-
|
19
|
+
date: 2011-09-30 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|