eventq_rabbitmq 1.14.1 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05af6776f6c83b5d478ad6529e2a708ae3858dca
4
- data.tar.gz: 6fac859ffda2279c6713c8af66124d50d90fb43c
3
+ metadata.gz: ff2c405a89063fc287c9786d515af313b0384121
4
+ data.tar.gz: b3931296591bbc43c9eca5de61179d7307084f62
5
5
  SHA512:
6
- metadata.gz: ef1f6a7ea8383bf86de6d03475f5e87fe8bb4510b89d67d2fc0d28ff4efbb9481a18c3ab1a340230e86bb645e702394a31323483a6b557b5be0c4b645b9f2efe
7
- data.tar.gz: a072f13174b6fb61cc8bbd1236aba9ccf6857d948eb623ac7dab9b1fd2b8f3dc3e322c4f26a1d449e2af44ebc2e7a9bb6d5492e543789b71b7288f27e4159774
6
+ metadata.gz: d5f6294cb4a4c2b25f1256ed9c8c45b5fd50bb951d0e09ad9d93b3a5a7158fbc0960693adb002f9c46c7fe0c39755f2cd83cb750f58f7ad1bcf697c2b68bde4a
7
+ data.tar.gz: 93c89113d36f8de45c0f6ab53c5541c07b18aeb76ae15e6028a4401770de993dad90abfd561d8589bf92d5588b7988792658868b6aa782c907253e893382f3d5
@@ -33,7 +33,11 @@ module EventQ
33
33
  true
34
34
  end
35
35
 
36
- def raise_event(event_type, event)
36
+ def publish(topic:, event:, context: {})
37
+ raise_event(topic, event, context)
38
+ end
39
+
40
+ def raise_event(event_type, event, context = {})
37
41
  register_event(event_type)
38
42
 
39
43
  _event_type = EventQ.create_event_type(event_type)
@@ -41,7 +45,7 @@ module EventQ
41
45
  with_connection do |channel|
42
46
  exchange = @queue_manager.get_exchange(channel, @event_raised_exchange)
43
47
 
44
- message = serialized_message(_event_type, event)
48
+ message = serialized_message(_event_type, event, context)
45
49
 
46
50
  exchange.publish(message, routing_key: _event_type)
47
51
 
@@ -51,7 +55,7 @@ module EventQ
51
55
  end
52
56
  end
53
57
 
54
- def raise_event_in_queue(event_type, event, queue, delay)
58
+ def raise_event_in_queue(event_type, event, queue, delay, context = {})
55
59
  register_event(event_type)
56
60
 
57
61
  _event_type = EventQ.create_event_type(event_type)
@@ -69,7 +73,7 @@ module EventQ
69
73
  q = channel.queue(_queue_name, durable: @queue_manager.durable)
70
74
  q.bind(exchange, routing_key: _event_type)
71
75
 
72
- message = serialized_message(_event_type, event)
76
+ message = serialized_message(_event_type, event, context)
73
77
 
74
78
  delay_exchange.publish(message, routing_key: _event_type)
75
79
 
@@ -101,10 +105,11 @@ module EventQ
101
105
  true
102
106
  end
103
107
 
104
- def serialized_message(event_type, event)
108
+ def serialized_message(event_type, event, context)
105
109
  qm = new_message
106
110
  qm.content = event
107
111
  qm.type = event_type
112
+ qm.context = context
108
113
 
109
114
  if EventQ::Configuration.signature_secret != nil
110
115
  provider = @signature_manager.get_provider(EventQ::Configuration.signature_provider)
@@ -59,13 +59,13 @@ module EventQ
59
59
 
60
60
  if queue.allow_retry_back_off == true
61
61
 
62
- EventQ.log(:debug, "[#{self.class}] - Requesting retry queue. x-dead-letter-exchange: #{subscriber_exchange.name} | x-message-ttl: #{queue.max_retry_delay}")
62
+ EventQ.logger.debug { "[#{self.class}] - Requesting retry queue. x-dead-letter-exchange: #{subscriber_exchange.name} | x-message-ttl: #{queue.max_retry_delay}" }
63
63
 
64
64
  return channel.queue("#{_queue_name}.r", :durable => @durable, :arguments => { X_DEAD_LETTER_EXCHANGE => subscriber_exchange.name, X_MESSAGE_TTL => queue.max_retry_delay })
65
65
 
66
66
  else
67
67
 
68
- EventQ.log(:debug, "[#{self.class}] - Requesting retry queue. x-dead-letter-exchange: #{subscriber_exchange.name} | x-message-ttl: #{queue.retry_delay}")
68
+ EventQ.logger.debug { "[#{self.class}] - Requesting retry queue. x-dead-letter-exchange: #{subscriber_exchange.name} | x-message-ttl: #{queue.retry_delay}" }
69
69
 
70
70
  return channel.queue("#{_queue_name}.r", :durable => @durable, :arguments => { X_DEAD_LETTER_EXCHANGE => subscriber_exchange.name, X_MESSAGE_TTL => queue.retry_delay })
71
71
 
@@ -22,7 +22,7 @@ module EventQ
22
22
 
23
23
  def start(queue, options = {}, &block)
24
24
 
25
- EventQ.log(:info, "[#{self.class}] - Preparing to start listening for messages.")
25
+ EventQ.logger.info("[#{self.class}] - Preparing to start listening for messages.")
26
26
 
27
27
  configure(queue, options)
28
28
 
@@ -32,7 +32,7 @@ module EventQ
32
32
  raise "[#{self.class}] - :client (QueueClient) must be specified."
33
33
  end
34
34
 
35
- EventQ.log(:info, "[#{self.class}] - Listening for messages.")
35
+ EventQ.logger.info("[#{self.class}] - Listening for messages.")
36
36
  EventQ.logger.debug do
37
37
  "[#{self.class} #start] - Listening for messages on queue: #{EventQ.create_queue_name(queue.name)}"
38
38
  end
@@ -100,7 +100,7 @@ module EventQ
100
100
  has_received_message = thread_process_iteration(channel, manager, queue, block)
101
101
 
102
102
  rescue => e
103
- EventQ.log(:error, "An unhandled error occurred. Error: #{e} | Backtrace: #{e.backtrace}")
103
+ EventQ.logger.error("An unhandled error occurred. Error: #{e} | Backtrace: #{e.backtrace}")
104
104
  call_on_error_block(error: e)
105
105
  end
106
106
 
@@ -111,9 +111,9 @@ module EventQ
111
111
  gc_flush
112
112
 
113
113
  if !has_received_message
114
- EventQ.log(:debug, "[#{self.class}] - No message received.")
114
+ EventQ.logger.debug { "[#{self.class}] - No message received." }
115
115
  if @sleep > 0
116
- EventQ.log(:debug, "[#{self.class}] - Sleeping for #{@sleep} seconds")
116
+ EventQ.logger.debug { "[#{self.class}] - Sleeping for #{@sleep} seconds" }
117
117
  sleep(@sleep)
118
118
  end
119
119
  end
@@ -136,14 +136,14 @@ module EventQ
136
136
 
137
137
  def call_on_error_block(error:, message: nil)
138
138
  if @on_error_block
139
- EventQ.log(:debug, "[#{self.class}] - Executing on_error block.")
139
+ EventQ.logger.debug { "[#{self.class}] - Executing on_error block." }
140
140
  begin
141
141
  @on_error_block.call(error, message)
142
142
  rescue => e
143
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_error block. Error: #{e}")
143
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_error block. Error: #{e}")
144
144
  end
145
145
  else
146
- EventQ.log(:debug, "[#{self.class}] - No on_error block specified to execute.")
146
+ EventQ.logger.debug { "[#{self.class}] - No on_error block specified to execute." }
147
147
  end
148
148
  end
149
149
 
@@ -182,7 +182,7 @@ module EventQ
182
182
  end
183
183
 
184
184
  rescue => e
185
- EventQ.log(:error, "[#{self.class}] - An error occurred attempting to process a message. Error: #{e} | Backtrace: #{e.backtrace}")
185
+ EventQ.logger.error("[#{self.class}] - An error occurred attempting to process a message. Error: #{e} | Backtrace: #{e.backtrace}")
186
186
  call_on_error_block(error: e)
187
187
  end
188
188
 
@@ -230,64 +230,64 @@ module EventQ
230
230
 
231
231
  def call_on_retry_exceeded_block(message)
232
232
  if @retry_exceeded_block != nil
233
- EventQ.log(:debug, "[#{self.class}] - Executing on_retry_exceeded block.")
233
+ EventQ.logger.debug { "[#{self.class}] - Executing on_retry_exceeded block." }
234
234
  begin
235
235
  @retry_exceeded_block.call(message)
236
236
  rescue => e
237
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_retry_exceeded block. Error: #{e}")
237
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_retry_exceeded block. Error: #{e}")
238
238
  end
239
239
  else
240
- EventQ.log(:debug, "[#{self.class}] - No on_retry_exceeded block specified.")
240
+ EventQ.logger.debug { "[#{self.class}] - No on_retry_exceeded block specified." }
241
241
  end
242
242
  end
243
243
 
244
244
  def call_on_retry_block(message)
245
245
  if @on_retry_block
246
- EventQ.log(:debug, "[#{self.class}] - Executing on_retry block.")
246
+ EventQ.logger.debug { "[#{self.class}] - Executing on_retry block." }
247
247
  begin
248
248
  @on_retry_block.call(message, abort)
249
249
  rescue => e
250
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_retry block. Error: #{e}")
250
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_retry block. Error: #{e}")
251
251
  end
252
252
  else
253
- EventQ.log(:debug, "[#{self.class}] - No on_retry block specified.")
253
+ EventQ.logger.debug { "[#{self.class}] - No on_retry block specified." }
254
254
  end
255
255
  end
256
256
 
257
257
  def reject_message(channel, message, delivery_info, retry_exchange, queue, abort)
258
258
 
259
- EventQ.log(:info, "[#{self.class}] - Message rejected removing from queue.")
259
+ EventQ.logger.info("[#{self.class}] - Message rejected removing from queue.")
260
260
  #reject the message to remove from queue
261
261
  channel.reject(delivery_info.delivery_tag, false)
262
262
 
263
263
  #check if the message retry limit has been exceeded
264
264
  if message.retry_attempts >= queue.max_retry_attempts
265
265
 
266
- EventQ.log(:info, "[#{self.class}] - Message retry attempt limit exceeded. Msg: #{serialize_message(message)}")
266
+ EventQ.logger.info("[#{self.class}] - Message retry attempt limit exceeded. Msg: #{serialize_message(message)}")
267
267
 
268
268
  call_on_retry_exceeded_block(message)
269
269
 
270
270
  #check if the message is allowed to be retried
271
271
  elsif queue.allow_retry
272
272
 
273
- EventQ.log(:debug, "[#{self.class}] - Incrementing retry attempts count.")
273
+ EventQ.logger.debug { "[#{self.class}] - Incrementing retry attempts count." }
274
274
  message.retry_attempts += 1
275
275
 
276
276
  if queue.allow_retry_back_off == true
277
- EventQ.log(:debug, "[#{self.class}] - Calculating message back off retry delay. Attempts: #{message.retry_attempts} * Retry Delay: #{queue.retry_delay}")
277
+ EventQ.logger.debug { "[#{self.class}] - Calculating message back off retry delay. Attempts: #{message.retry_attempts} * Retry Delay: #{queue.retry_delay}" }
278
278
  message_ttl = message.retry_attempts * queue.retry_delay
279
279
  if (message.retry_attempts * queue.retry_delay) > queue.max_retry_delay
280
- EventQ.log(:debug, "[#{self.class}] - Max message back off retry delay reached.")
280
+ EventQ.logger.debug { "[#{self.class}] - Max message back off retry delay reached." }
281
281
  message_ttl = queue.max_retry_delay
282
282
  end
283
283
  else
284
- EventQ.log(:debug, "[#{self.class}] - Setting fixed retry delay for message.")
284
+ EventQ.logger.debug { "[#{self.class}] - Setting fixed retry delay for message." }
285
285
  message_ttl = queue.retry_delay
286
286
  end
287
287
 
288
- EventQ.log(:debug, "[#{self.class}] - Sending message for retry. Message TTL: #{message_ttl}")
288
+ EventQ.logger.debug { "[#{self.class}] - Sending message for retry. Message TTL: #{message_ttl}" }
289
289
  retry_exchange.publish(serialize_message(message), :expiration => message_ttl)
290
- EventQ.log(:debug, "[#{self.class}] - Published message to retry exchange.")
290
+ EventQ.logger.debug { "[#{self.class}] - Published message to retry exchange." }
291
291
 
292
292
  call_on_retry_block(message)
293
293
 
@@ -323,7 +323,7 @@ module EventQ
323
323
  @gc_flush_interval = options[:gc_flush_interval]
324
324
  end
325
325
 
326
- EventQ.log(:info, "[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep}.")
326
+ EventQ.logger.info("[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep}.")
327
327
 
328
328
  return true
329
329
 
@@ -336,14 +336,14 @@ module EventQ
336
336
  error = false
337
337
  message = deserialize_message(payload)
338
338
 
339
- EventQ.log(:info, "[#{self.class}] - Message received. Retry Attempts: #{message.retry_attempts}")
339
+ EventQ.logger.info("[#{self.class}] - Message received. Retry Attempts: #{message.retry_attempts}")
340
340
 
341
341
  @signature_provider_manager.validate_signature(message: message, queue: queue)
342
342
 
343
- message_args = EventQ::MessageArgs.new(message.type, message.retry_attempts)
343
+ message_args = EventQ::MessageArgs.new(message.type, message.retry_attempts, message.context)
344
344
 
345
345
  if(!EventQ::NonceManager.is_allowed?(message.id))
346
- EventQ.log(:info, "[#{self.class}] - Duplicate Message received. Dropping message.")
346
+ EventQ.logger.info("[#{self.class}] - Duplicate Message received. Dropping message.")
347
347
  channel.acknowledge(delivery_info.delivery_tag, false)
348
348
  return false
349
349
  end
@@ -354,15 +354,15 @@ module EventQ
354
354
 
355
355
  if message_args.abort == true
356
356
  abort = true
357
- EventQ.log(:info, "[#{self.class}] - Message aborted.")
357
+ EventQ.logger.info("[#{self.class}] - Message aborted.")
358
358
  else
359
359
  #accept the message as processed
360
360
  channel.acknowledge(delivery_info.delivery_tag, false)
361
- EventQ.log(:info, "[#{self.class}] - Message acknowledged.")
361
+ EventQ.logger.info("[#{self.class}] - Message acknowledged.")
362
362
  end
363
363
 
364
364
  rescue => e
365
- EventQ.log(:error, "[#{self.class}] - An unhandled error happened attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
365
+ EventQ.logger.error("[#{self.class}] - An unhandled error happened attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
366
366
  error = true
367
367
  call_on_error_block(error: e, message: message)
368
368
  end
@@ -1,3 +1,3 @@
1
1
  module EventqRabbitmq
2
- VERSION = "1.14.1"
2
+ VERSION = "1.15.0"
3
3
  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.14.1
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-27 00:00:00.000000000 Z
11
+ date: 2017-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler