eventq_aws 1.11.2 → 1.12.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: bdb7687438c2595fe5736cff05e304ee464698cb
4
- data.tar.gz: 7de2b7ec8f539d03eeb261b9c63052db85fc3974
3
+ metadata.gz: 7afc5b68dc722ef6547d19b6455d9100cd51628d
4
+ data.tar.gz: 5f0cb52ceecb844a317d405e0063c6d8d88a8b7f
5
5
  SHA512:
6
- metadata.gz: 67713bd6de8c084fca295d45cc9df373cb524b7a07734d48e0f415df725a73852945440fdf50e6d0710d2b9933c1b408141e43afaa57422645f91d213477a4c8
7
- data.tar.gz: ac08e12c48a26812bd7ef7d52a5992edf9a3ec2683358ef7d7067ac307104f36a3881fa324f750b0fa32848f40c947dfc5afa891d02a8e9efed40550ed2e99ea
6
+ metadata.gz: df970ec2572e071a2d1288a6353702e314544083897c42731f4d2ab9adea3582451143eba631a6352cd4a5401ca3c35faea5fe638c4142753f38236c59bf86f6
7
+ data.tar.gz: 15ba056beb5de87a6ae2153ca541dc45d92bba49057e0b48e803aaa7c2962223cb731fa32222c0ba4b8c49e23a1413a176d15f783f6c961427f7c99d920c6f2e
@@ -34,10 +34,14 @@ module EventQ
34
34
  true
35
35
  end
36
36
 
37
- def raise_event(event_type, event)
37
+ def publish(topic:, event:, context: {})
38
+ raise_event(topic, event, context)
39
+ end
40
+
41
+ def raise_event(event_type, event, context = {})
38
42
  register_event(event_type)
39
43
 
40
- with_prepared_message(event_type, event) do |message|
44
+ with_prepared_message(event_type, event, context) do |message|
41
45
 
42
46
  response = @client.sns.publish(
43
47
  topic_arn: topic_arn(event_type),
@@ -53,9 +57,9 @@ module EventQ
53
57
  end
54
58
  end
55
59
 
56
- def raise_event_in_queue(event_type, event, queue, delay)
60
+ def raise_event_in_queue(event_type, event, queue, delay, context = {})
57
61
  queue_url = @client.get_queue_url(queue)
58
- with_prepared_message(event_type, event) do |message|
62
+ with_prepared_message(event_type, event, context) do |message|
59
63
 
60
64
  response = @client.sqs.send_message(
61
65
  queue_url: queue_url,
@@ -77,10 +81,11 @@ module EventQ
77
81
 
78
82
  private
79
83
 
80
- def with_prepared_message(event_type, event)
84
+ def with_prepared_message(event_type, event, context)
81
85
  qm = new_message
82
86
  qm.content = event
83
87
  qm.type = event_type
88
+ qm.context = context
84
89
 
85
90
  if EventQ::Configuration.signature_secret != nil
86
91
  provider = @signature_manager.get_provider(EventQ::Configuration.signature_provider)
@@ -17,7 +17,7 @@ module EventQ
17
17
  @aws_region = options[:aws_region]
18
18
  Aws.config[:region] = @aws_region
19
19
  else
20
- @aw_region = Aws.config[:region]
20
+ @aws_region = Aws.config[:region]
21
21
  end
22
22
  end
23
23
 
@@ -29,7 +29,7 @@ module EventQ
29
29
 
30
30
  def start(queue, options = {}, &block)
31
31
 
32
- EventQ.log(:info, "[#{self.class}] - Preparing to start listening for messages.")
32
+ EventQ.logger.info("[#{self.class}] - Preparing to start listening for messages.")
33
33
 
34
34
  configure(queue, options)
35
35
 
@@ -44,7 +44,7 @@ module EventQ
44
44
  "[#{self.class} #start] - Listening for messages on queue: #{queue.name}, Queue Url: #{client.get_queue_url(queue)}, Queue arn: #{client.get_queue_arn(queue)}"
45
45
  end
46
46
 
47
- EventQ.log(:info, "[#{self.class}] - Listening for messages.")
47
+ EventQ.logger.info("[#{self.class}] - Listening for messages.")
48
48
 
49
49
  @forks = []
50
50
 
@@ -99,9 +99,9 @@ module EventQ
99
99
  gc_flush
100
100
 
101
101
  if !has_message_received
102
- EventQ.log(:debug, "[#{self.class}] - No message received.")
102
+ EventQ.logger.debug { "[#{self.class}] - No message received." }
103
103
  if @sleep > 0
104
- EventQ.log(:debug, "[#{self.class}] - Sleeping for #{@sleep} seconds")
104
+ EventQ.logger.debug { "[#{self.class}] - Sleeping for #{@sleep} seconds" }
105
105
  sleep(@sleep)
106
106
  end
107
107
  end
@@ -168,45 +168,45 @@ module EventQ
168
168
 
169
169
  def call_on_error_block(error:, message: nil)
170
170
  if @on_error_block
171
- EventQ.log(:debug, "[#{self.class}] - Executing on_error block.")
171
+ EventQ.logger.debug { "[#{self.class}] - Executing on_error block." }
172
172
  begin
173
173
  @on_error_block.call(error, message)
174
174
  rescue => e
175
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_error block. Error: #{e}")
175
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_error block. Error: #{e}")
176
176
  end
177
177
  else
178
- EventQ.log(:debug, "[#{self.class}] - No on_error block specified to execute.")
178
+ EventQ.logger.debug { "[#{self.class}] - No on_error block specified to execute." }
179
179
  end
180
180
  end
181
181
 
182
182
  def call_on_retry_exceeded_block(message)
183
183
  if @on_retry_exceeded_block != nil
184
- EventQ.log(:debug, "[#{self.class}] - Executing on_retry_exceeded block.")
184
+ EventQ.logger.debug { "[#{self.class}] - Executing on_retry_exceeded block." }
185
185
  begin
186
186
  @on_retry_exceeded_block.call(message)
187
187
  rescue => e
188
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_retry_exceeded block. Error: #{e}")
188
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_retry_exceeded block. Error: #{e}")
189
189
  end
190
190
  else
191
- EventQ.log(:debug, "[#{self.class}] - No on_retry_exceeded block specified.")
191
+ EventQ.logger.debug { "[#{self.class}] - No on_retry_exceeded block specified." }
192
192
  end
193
193
  end
194
194
 
195
195
  def call_on_retry_block(message)
196
196
  if @on_retry_block
197
- EventQ.log(:debug, "[#{self.class}] - Executing on_retry block.")
197
+ EventQ.logger.debug { "[#{self.class}] - Executing on_retry block." }
198
198
  begin
199
199
  @on_retry_block.call(message, abort)
200
200
  rescue => e
201
- EventQ.log(:error, "[#{self.class}] - An error occurred executing the on_retry block. Error: #{e}")
201
+ EventQ.logger.error("[#{self.class}] - An error occurred executing the on_retry block. Error: #{e}")
202
202
  end
203
203
  else
204
- EventQ.log(:debug, "[#{self.class}] - No on_retry block specified.")
204
+ EventQ.logger.debug { "[#{self.class}] - No on_retry block specified." }
205
205
  end
206
206
  end
207
207
 
208
208
  def stop
209
- EventQ.log(:info, "[#{self.class}] - Stopping.")
209
+ EventQ.logger.info("[#{self.class}] - Stopping.")
210
210
  @is_running = false
211
211
  @threads.each { |thr| thr.join }
212
212
  return true
@@ -250,14 +250,14 @@ module EventQ
250
250
  payload = JSON.load(msg.body)
251
251
  message = deserialize_message(payload[MESSAGE])
252
252
 
253
- message_args = EventQ::MessageArgs.new(message.type, retry_attempts)
253
+ message_args = EventQ::MessageArgs.new(message.type, retry_attempts, message.context)
254
254
 
255
- EventQ.log(:info, "[#{self.class}] - Message received. Retry Attempts: #{retry_attempts}")
255
+ EventQ.logger.info("[#{self.class}] - Message received. Retry Attempts: #{retry_attempts}")
256
256
 
257
257
  @signature_provider_manager.validate_signature(message: message, queue: queue)
258
258
 
259
259
  if(!EventQ::NonceManager.is_allowed?(message.id))
260
- EventQ.log(:info, "[#{self.class}] - Duplicate Message received. Dropping message.")
260
+ EventQ.logger.info("[#{self.class}] - Duplicate Message received. Dropping message.")
261
261
  client.sqs.delete_message({ queue_url: q, receipt_handle: msg.receipt_handle })
262
262
  return false
263
263
  end
@@ -268,15 +268,15 @@ module EventQ
268
268
  block.call(message.content, message_args)
269
269
 
270
270
  if message_args.abort == true
271
- EventQ.log(:info, "[#{self.class}] - Message aborted.")
271
+ EventQ.logger.info("[#{self.class}] - Message aborted.")
272
272
  else
273
273
  #accept the message as processed
274
274
  client.sqs.delete_message({ queue_url: q, receipt_handle: msg.receipt_handle })
275
- EventQ.log(:info, "[#{self.class}] - Message acknowledged.")
275
+ EventQ.logger.info("[#{self.class}] - Message acknowledged.")
276
276
  end
277
277
 
278
278
  rescue => e
279
- EventQ.log(:error, "[#{self.class}] - An unhandled error happened while attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
279
+ EventQ.logger.error("[#{self.class}] - An unhandled error happened while attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
280
280
  error = true
281
281
  call_on_error_block(error: e, message: message)
282
282
  end
@@ -295,14 +295,14 @@ module EventQ
295
295
 
296
296
  if !queue.allow_retry || retry_attempts >= queue.max_retry_attempts
297
297
 
298
- EventQ.log(:info, "[#{self.class}] - Message rejected removing from queue. Message: #{serialize_message(message)}")
298
+ EventQ.logger.info("[#{self.class}] - Message rejected removing from queue. Message: #{serialize_message(message)}")
299
299
 
300
300
  #remove the message from the queue so that it does not get retried again
301
301
  client.sqs.delete_message({ queue_url: q, receipt_handle: msg.receipt_handle })
302
302
 
303
303
  if retry_attempts >= queue.max_retry_attempts
304
304
 
305
- EventQ.log(:info, "[#{self.class}] - Message retry attempt limit exceeded.")
305
+ EventQ.logger.info("[#{self.class}] - Message retry attempt limit exceeded.")
306
306
  call_on_retry_exceeded_block(message)
307
307
 
308
308
  end
@@ -311,26 +311,26 @@ module EventQ
311
311
 
312
312
  retry_attempts += 1
313
313
 
314
- EventQ.log(:info, "[#{self.class}] - Message rejected requesting retry. Attempts: #{retry_attempts}")
314
+ EventQ.logger.info("[#{self.class}] - Message rejected requesting retry. Attempts: #{retry_attempts}")
315
315
 
316
316
  if queue.allow_retry_back_off == true
317
- EventQ.log(:debug, "[#{self.class}] - Calculating message back off retry delay. Attempts: #{retry_attempts} * Delay: #{queue.retry_delay}")
317
+ EventQ.logger.debug { "[#{self.class}] - Calculating message back off retry delay. Attempts: #{retry_attempts} * Delay: #{queue.retry_delay}" }
318
318
  visibility_timeout = (queue.retry_delay * retry_attempts) / 1000
319
319
  if visibility_timeout > (queue.max_retry_delay / 1000)
320
- EventQ.log(:debug, "[#{self.class}] - Max message back off retry delay reached.")
320
+ EventQ.logger.debug { "[#{self.class}] - Max message back off retry delay reached." }
321
321
  visibility_timeout = queue.max_retry_delay / 1000
322
322
  end
323
323
  else
324
- EventQ.log(:debug, "[#{self.class}] - Setting fixed retry delay for message.")
324
+ EventQ.logger.debug { "[#{self.class}] - Setting fixed retry delay for message." }
325
325
  visibility_timeout = queue.retry_delay / 1000
326
326
  end
327
327
 
328
328
  if visibility_timeout > 43200
329
- EventQ.log(:debug, "[#{self.class}] - AWS max visibility timeout of 12 hours has been exceeded. Setting message retry delay to 12 hours.")
329
+ EventQ.logger.debug { "[#{self.class}] - AWS max visibility timeout of 12 hours has been exceeded. Setting message retry delay to 12 hours." }
330
330
  visibility_timeout = 43200
331
331
  end
332
332
 
333
- EventQ.log(:debug, "[#{self.class}] - Sending message for retry. Message TTL: #{visibility_timeout}")
333
+ EventQ.logger.debug { "[#{self.class}] - Sending message for retry. Message TTL: #{visibility_timeout}" }
334
334
  client.sqs.change_message_visibility({
335
335
  queue_url: q, # required
336
336
  receipt_handle: msg.receipt_handle, # required
@@ -372,7 +372,7 @@ module EventQ
372
372
  @queue_poll_wait = options[:queue_poll_wait]
373
373
  end
374
374
 
375
- EventQ.log(:info, "[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep} | GC Flush Interval: #{@gc_flush_interval} | Queue Poll Wait: #{@queue_poll_wait}.")
375
+ EventQ.logger.info("[#{self.class}] - Configuring. Process Count: #{@fork_count} | Thread Count: #{@thread_count} | Interval Sleep: #{@sleep} | GC Flush Interval: #{@gc_flush_interval} | Queue Poll Wait: #{@queue_poll_wait}.")
376
376
 
377
377
  return true
378
378
 
@@ -1,5 +1,5 @@
1
1
  module EventQ
2
2
  module Amazon
3
- VERSION = "1.11.2"
3
+ VERSION = "1.12.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventq_aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.2
4
+ version: 1.12.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