eventq_rabbitmq 1.10.4 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eventq_rabbitmq/rabbitmq_queue_worker.rb +48 -5
- data/lib/eventq_rabbitmq/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4928cde9bcd0b762d3b0938c52592048b21f2a58
|
4
|
+
data.tar.gz: 42289c45561bc1f2258406ec33b07abadf8debb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aa81b43c8983ef50efc43426e1253f99410fd51433cfe5d8d4339296a5a0b24275760e8e385c85843e18a9b8c030fcce2775c2a4797aab89f7a61f9401c23f4
|
7
|
+
data.tar.gz: 245391ae31872971615166e6e9bc90bfcc3d5f0cbe63c2cf6437c55c236adbb24f04db0c0c771a2a5986ed24a3825ef964979ccc3025a946c0cf5505a4838fe2
|
@@ -11,6 +11,8 @@ module EventQ
|
|
11
11
|
@is_running = false
|
12
12
|
|
13
13
|
@retry_exceeded_block = nil
|
14
|
+
@on_retry_block = nil
|
15
|
+
@on_error_block = nil
|
14
16
|
@hash_helper = HashKit::Helper.new
|
15
17
|
@serialization_provider_manager = EventQ::SerializationProviders::Manager.new
|
16
18
|
@last_gc_flush = Time.now
|
@@ -94,7 +96,16 @@ module EventQ
|
|
94
96
|
has_received_message = thread_process_iteration(channel, manager, queue, block)
|
95
97
|
|
96
98
|
rescue => e
|
97
|
-
EventQ.logger.error "An unhandled error occurred
|
99
|
+
EventQ.logger.error "An unhandled error occurred. Error: #{e} | Backtrace: #{e.backtrace}"
|
100
|
+
|
101
|
+
if @on_error_block
|
102
|
+
EventQ.log(:debug, "[#{self.class}] - Executing on error block.")
|
103
|
+
begin
|
104
|
+
@on_error_block.call(e, message)
|
105
|
+
rescue => e2
|
106
|
+
EventQ.log(:error, "[#{self.class}] - An error occurred executing the on error block. Error: #{e2}")
|
107
|
+
end
|
108
|
+
end
|
98
109
|
end
|
99
110
|
|
100
111
|
if channel != nil && channel.status != :closed
|
@@ -162,7 +173,16 @@ module EventQ
|
|
162
173
|
end
|
163
174
|
|
164
175
|
rescue => e
|
165
|
-
EventQ.log(:error, "[#{self.class}] - An error occurred attempting to
|
176
|
+
EventQ.log(:error, "[#{self.class}] - An error occurred attempting to process a message. Error: #{e} | Backtrace: #{e.backtrace}")
|
177
|
+
|
178
|
+
if @on_error_block
|
179
|
+
EventQ.log(:debug, "[#{self.class}] - Executing on error block.")
|
180
|
+
begin
|
181
|
+
@on_error_block.call(e)
|
182
|
+
rescue => e2
|
183
|
+
EventQ.log(:error, "[#{self.class}] - An error occurred executing the on error block. Error: #{e2}")
|
184
|
+
end
|
185
|
+
end
|
166
186
|
end
|
167
187
|
|
168
188
|
return received
|
@@ -183,6 +203,16 @@ module EventQ
|
|
183
203
|
return nil
|
184
204
|
end
|
185
205
|
|
206
|
+
def on_retry(&block)
|
207
|
+
@on_retry_block = block
|
208
|
+
return nil
|
209
|
+
end
|
210
|
+
|
211
|
+
def on_error(&block)
|
212
|
+
@on_error_block = block
|
213
|
+
return nil
|
214
|
+
end
|
215
|
+
|
186
216
|
def running?
|
187
217
|
return @is_running
|
188
218
|
end
|
@@ -197,7 +227,7 @@ module EventQ
|
|
197
227
|
return provider.serialize(msg)
|
198
228
|
end
|
199
229
|
|
200
|
-
def reject_message(channel, message, delivery_info, retry_exchange, queue)
|
230
|
+
def reject_message(channel, message, delivery_info, retry_exchange, queue, abort)
|
201
231
|
|
202
232
|
EventQ.log(:info, "[#{self.class}] - Message rejected removing from queue.")
|
203
233
|
#reject the message to remove from queue
|
@@ -210,7 +240,11 @@ module EventQ
|
|
210
240
|
|
211
241
|
if @retry_exceeded_block != nil
|
212
242
|
EventQ.log(:debug, "[#{self.class}] - Executing retry exceeded block.")
|
213
|
-
|
243
|
+
begin
|
244
|
+
@retry_exceeded_block.call(message)
|
245
|
+
rescue => e
|
246
|
+
EventQ.log(:error, "[#{self.class}] - An error occurred executing the retry exceeded block. Error: #{e}")
|
247
|
+
end
|
214
248
|
else
|
215
249
|
EventQ.log(:debug, "[#{self.class}] - No retry exceeded block specified.")
|
216
250
|
end
|
@@ -237,6 +271,15 @@ module EventQ
|
|
237
271
|
retry_exchange.publish(serialize_message(message), :expiration => message_ttl)
|
238
272
|
EventQ.log(:debug, "[#{self.class}] - Published message to retry exchange.")
|
239
273
|
|
274
|
+
if @on_retry_block
|
275
|
+
EventQ.log(:debug, "[#{self.class}] - Executing on retry block.")
|
276
|
+
begin
|
277
|
+
@on_retry_block.call(message, abort)
|
278
|
+
rescue => e
|
279
|
+
EventQ.log(:error, "[#{self.class}] - An error occurred executing the on retry block. Error: #{e}")
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
240
283
|
end
|
241
284
|
|
242
285
|
return true
|
@@ -312,7 +355,7 @@ module EventQ
|
|
312
355
|
|
313
356
|
if error || abort
|
314
357
|
EventQ::NonceManager.failed(message.id)
|
315
|
-
reject_message(channel, message, delivery_info, retry_exchange, queue)
|
358
|
+
reject_message(channel, message, delivery_info, retry_exchange, queue, abort)
|
316
359
|
else
|
317
360
|
EventQ::NonceManager.complete(message.id)
|
318
361
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventq_rabbitmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vaughanbrittonsage
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|