eventq_rabbitmq 1.14.1 → 1.15.0

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
  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