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 CHANGED
@@ -1,3 +1,8 @@
1
+ = version 0.0.8
2
+
3
+ * [FEATURE] Do not start consumers when server type is unknown
4
+ * [ENHANCEMENT] Better logging
5
+
1
6
  = version 0.0.7
2
7
 
3
8
  * [ENHANCEMENT] Log payload when log level is debug
@@ -1,5 +1,5 @@
1
1
  module AMQP
2
2
  module Boilerplate
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
@@ -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 defined?(PhusionPassenger)
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
- start_consumers
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: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
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-26 00:00:00 +02:00
19
+ date: 2011-09-30 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency