symphony 0.12.3 → 0.12.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7222c714bd9a2268e47fa14996f96a92e6bc4e443c9212b61aa9a00b64a5dff9
4
- data.tar.gz: a63326ee75b5dd8673f17757cb62e2608598623279a2616cd110db7fd97e3ee7
3
+ metadata.gz: 2ebf037000f9b9878dd653de8fef3bee18a87848355aacf48fecc7dba7a97fec
4
+ data.tar.gz: 139ee8cc122fe1bd388722a7a432df916b403109aabc404d9998cdaaa4dbc7d7
5
5
  SHA512:
6
- metadata.gz: afc8ddd33eb3b437ca831426075a9f97927882baa372b356ad5da7e0f97f3c5a80422eae0f86224a87bde87ea2f14d24ce8a3dae5ee8e44b5896ce6889c9a5d6
7
- data.tar.gz: 826de2c46e1b1511631dd036e897033b9633a9a2500ac59d95dbe3c884afaade0a10b45b56640f18de2b344d4e688ab259563cb433a2f9d1efe221911e34f5e9
6
+ metadata.gz: b50d7c1491c8e152b457fb8bf200d1e886efba69a464e94fbde0555ab50a3dad7d0af6beb6c85671873538d650b5bc98b4ff8831f3de7505ffc6c62e8b323390
7
+ data.tar.gz: 1a6499dd59780c510f4f8e5b61f88e45de471c5453e4fd5d91857d2bb9e813a5d0b557b5a47b86579aec1766013d650a9e4da607f7c78e8ea3768ce3ec5381ac
checksums.yaml.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -2,24 +2,38 @@
2
2
 
3
3
  o * lib/symphony/daemon.rb:
4
4
  | Observe with one description arg
5
- | [fb1cb7e85622] [tip]
5
+ | [d9b6c47d9a4e] [tip]
6
6
  |
7
7
  2019-07-10 Michael Granger <ged@FaerieMUD.org>
8
8
 
9
9
  o * lib/symphony/task.rb:
10
10
  | Rearrange and observe salient methods
11
- | [9a00239b9bcd]
11
+ | [732ca4f87efb]
12
12
  |
13
13
  2019-07-05 Michael Granger <ged@FaerieMUD.org>
14
14
 
15
15
  o * .gems, Rakefile, lib/symphony.rb, lib/symphony/daemon.rb,
16
16
  | lib/symphony/task.rb, lib/symphony/task_group.rb:
17
17
  | Add speculative use of Observability
18
- | [4c0da09bdae2]
18
+ | [e57c975ac790]
19
+ |
20
+ 2019-07-11 Michael Granger <ged@FaerieMUD.org>
21
+
22
+ @ * .hgtags:
23
+ | Added tag v0.12.3 for changeset c785fccd2943
24
+ | [6c2e3d5d7eb1]
25
+ |
26
+ o * .hgsigs:
27
+ | Added signature for changeset 36e4b5500351
28
+ | [c785fccd2943] [v0.12.3]
29
+ |
30
+ o * History.rdoc, lib/symphony.rb, symphony.gemspec:
31
+ | Bump the patch version, update history.
32
+ | [36e4b5500351]
19
33
  |
20
34
  2019-07-10 Michael Granger <ged@FaerieMUD.org>
21
35
 
22
- @ * lib/symphony/task.rb, lib/symphony/task_group/longlived.rb,
36
+ o * lib/symphony/task.rb, lib/symphony/task_group/longlived.rb,
23
37
  | spec/symphony/task_group/longlived_spec.rb:
24
38
  | Re-establish AMQP connections after the task fork
25
39
  | [70a6afb0622a]
data/History.rdoc CHANGED
@@ -1,3 +1,11 @@
1
+ == v0.12.4 [2019-07-11] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Be more paranoid about shared channels, and be defensive when using
6
+ the counting queue.
7
+
8
+
1
9
  == v0.12.3 [2019-07-11] Michael Granger <ged@FaerieMUD.org>
2
10
 
3
11
  Bugfixes:
@@ -69,6 +69,7 @@ class Symphony::Queue
69
69
 
70
70
  ### Fetch a Hash of AMQP options.
71
71
  def self::amqp_session_options
72
+ self.session_opts ||= self.defaults
72
73
  opts = self.session_opts.merge({
73
74
  logger: Loggability[ Bunny ],
74
75
  })
@@ -35,8 +35,6 @@ class Symphony::TaskGroup::LongLived < Symphony::TaskGroup
35
35
  return [ pid ]
36
36
  end
37
37
 
38
- @queue ||= self.get_message_counting_queue
39
-
40
38
  return nil
41
39
  end
42
40
 
@@ -44,11 +42,10 @@ class Symphony::TaskGroup::LongLived < Symphony::TaskGroup
44
42
  ### Return +true+ if the task group should scale up by one.
45
43
  def needs_a_worker?
46
44
  return true if self.workers.empty?
47
- return false unless @queue
48
-
45
+ queue = self.get_message_counting_queue or return false
49
46
 
50
47
  # Calculate the number of workers across the whole broker
51
- if ( cc = @queue.consumer_count ) >= self.max_workers
48
+ if ( cc = queue.consumer_count ) >= self.max_workers
52
49
  self.log.debug "%p: Already at max workers (%d)" % [ self.task_class, self.max_workers ]
53
50
  return false
54
51
  else
@@ -62,9 +59,10 @@ class Symphony::TaskGroup::LongLived < Symphony::TaskGroup
62
59
 
63
60
  ### Add the current number of workers to the samples.
64
61
  def sample_queue_status
65
- return unless @queue
62
+ return if self.workers.empty?
66
63
 
67
- count = @queue.message_count
64
+ queue = self.get_message_counting_queue or return
65
+ count = queue.message_count
68
66
  self.add_sample( count )
69
67
  end
70
68
 
@@ -82,11 +80,20 @@ class Symphony::TaskGroup::LongLived < Symphony::TaskGroup
82
80
  ### Get a queue for counting the number of messages in the queue for this
83
81
  ### worker.
84
82
  def get_message_counting_queue
85
- channel = Symphony::Queue.amqp_channel
86
- queue = channel.queue( self.task_class.queue_name, passive: true, prefetch: 0 )
83
+ @queue ||= begin
84
+ self.log.debug "Creating the message-counting queue."
85
+ channel = Symphony::Queue.amqp_channel
86
+ channel.queue( self.task_class.queue_name, passive: true, prefetch: 0 )
87
+ end
88
+
89
+ unless @queue.channel.open?
90
+ self.log.info "Message-counting queue's channel was closed: resetting."
91
+ Symphony::Queue.reset
92
+ @queue = nil
93
+ end
87
94
 
88
- return queue
89
- rescue Bunny::NotFound => err
95
+ return @queue
96
+ rescue Bunny::NotFound, Bunny::ChannelAlreadyClosed => err
90
97
  self.log.info "Child hasn't created the queue yet; deferring"
91
98
  Symphony::Queue.reset
92
99
 
data/lib/symphony.rb CHANGED
@@ -12,7 +12,7 @@ module Symphony
12
12
  Configurability
13
13
 
14
14
  # Library version constant
15
- VERSION = '0.12.3'
15
+ VERSION = '0.12.4'
16
16
 
17
17
  # Version-control revision constant
18
18
  REVISION = %q$Revision$
@@ -23,6 +23,9 @@ describe Symphony::TaskGroup::LongLived do
23
23
  def self::run
24
24
  self.has_run = true
25
25
  end
26
+ def self::name
27
+ return "TestTask"
28
+ end
26
29
  end
27
30
  end
28
31
 
@@ -75,8 +78,8 @@ describe Symphony::TaskGroup::LongLived do
75
78
 
76
79
  allow( Process ).to receive( :setpgid )
77
80
 
78
- channel = double( Bunny::Channel )
79
- queue = double( Bunny::Queue )
81
+ channel = double( Bunny::Channel, open?: true )
82
+ queue = double( Bunny::Queue, channel: channel )
80
83
  expect( Symphony::Queue ).to receive( :amqp_channel ).
81
84
  and_return( channel )
82
85
  expect( channel ).to receive( :queue ).
@@ -89,7 +92,8 @@ describe Symphony::TaskGroup::LongLived do
89
92
  expect( queue ).to receive( :message_count ).and_return( *samples )
90
93
 
91
94
  start = 1414002605
92
- start.upto( start + samples.size + 1 ) do |time|
95
+ start.upto( start + samples.size ) do |time|
96
+ Loggability.logger.debug "Foom"
93
97
  Timecop.freeze( time ) do
94
98
  task_group.adjust_workers
95
99
  end
@@ -106,8 +110,8 @@ describe Symphony::TaskGroup::LongLived do
106
110
 
107
111
  allow( Process ).to receive( :setpgid )
108
112
 
109
- channel = double( Bunny::Channel )
110
- queue = double( Bunny::Queue )
113
+ channel = double( Bunny::Channel, open?: true )
114
+ queue = double( Bunny::Queue, channel: channel )
111
115
  expect( Symphony::Queue ).to receive( :amqp_channel ).
112
116
  and_return( channel )
113
117
  expect( channel ).to receive( :queue ).
@@ -120,7 +124,7 @@ describe Symphony::TaskGroup::LongLived do
120
124
  expect( queue ).to receive( :message_count ).and_return( *samples )
121
125
 
122
126
  start = 1414002605
123
- start.upto( start + samples.size + 1 ) do |time|
127
+ start.upto( start + samples.size ) do |time|
124
128
  Timecop.freeze( time ) do
125
129
  task_group.adjust_workers
126
130
  end
@@ -136,8 +140,8 @@ describe Symphony::TaskGroup::LongLived do
136
140
 
137
141
  allow( Process ).to receive( :setpgid )
138
142
 
139
- channel = double( Bunny::Channel )
140
- queue = double( Bunny::Queue )
143
+ channel = double( Bunny::Channel, open?: true )
144
+ queue = double( Bunny::Queue, channel: channel )
141
145
  expect( Symphony::Queue ).to receive( :amqp_channel ).
142
146
  and_return( channel )
143
147
  expect( channel ).to receive( :queue ).
@@ -150,7 +154,7 @@ describe Symphony::TaskGroup::LongLived do
150
154
  expect( queue ).to receive( :message_count ).and_return( *samples )
151
155
 
152
156
  start = 1414002605
153
- start.upto( start + samples.size + 1 ) do |time|
157
+ start.upto( start + samples.size ) do |time|
154
158
  Timecop.freeze( time ) do
155
159
  task_group.adjust_workers
156
160
  end
@@ -166,8 +170,8 @@ describe Symphony::TaskGroup::LongLived do
166
170
 
167
171
  allow( Process ).to receive( :setpgid )
168
172
 
169
- channel = double( Bunny::Channel )
170
- queue = double( Bunny::Queue )
173
+ channel = double( Bunny::Channel, open?: true )
174
+ queue = double( Bunny::Queue, channel: channel )
171
175
  expect( Symphony::Queue ).to receive( :amqp_channel ).
172
176
  and_return( channel )
173
177
  expect( channel ).to receive( :queue ).
@@ -178,7 +182,7 @@ describe Symphony::TaskGroup::LongLived do
178
182
  expect( queue ).to receive( :message_count ).and_return( *samples )
179
183
 
180
184
  start = 1414002605
181
- start.upto( start + samples.size + 1 ) do |time|
185
+ start.upto( start + samples.size ) do |time|
182
186
  Timecop.freeze( time ) do
183
187
  task_group.adjust_workers
184
188
  end
@@ -194,8 +198,8 @@ describe Symphony::TaskGroup::LongLived do
194
198
 
195
199
  allow( Process ).to receive( :setpgid )
196
200
 
197
- channel = double( Bunny::Channel )
198
- queue = double( Bunny::Queue )
201
+ channel = double( Bunny::Channel, open?: true )
202
+ queue = double( Bunny::Queue, channel: channel )
199
203
  expect( Symphony::Queue ).to receive( :amqp_channel ).
200
204
  and_return( channel )
201
205
  expect( channel ).to receive( :queue ).
@@ -208,7 +212,7 @@ describe Symphony::TaskGroup::LongLived do
208
212
  expect( queue ).to receive( :message_count ).and_return( *samples )
209
213
 
210
214
  start = 1414002605
211
- start.upto( start + samples.size + 1 ) do |time|
215
+ start.upto( start + samples.size ) do |time|
212
216
  Timecop.freeze( time ) do
213
217
  task_group.adjust_workers
214
218
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symphony
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.3
4
+ version: 0.12.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  v4qqqa27Bs468d6SoPxjSm8a2mM9HZ4OdWhq4tFsbTeXDVquCfi64OTEaTt2xQdR
36
36
  JnC4lpJfCP6aCXa5h2XAQfPSH636cQap
37
37
  -----END CERTIFICATE-----
38
- date: 2019-07-11 00:00:00.000000000 Z
38
+ date: 2019-07-12 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: configurability
metadata.gz.sig CHANGED
Binary file