eventq_aws 1.11.2 → 1.12.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: 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