hermes_messenger_of_the_gods 2.3.0 → 2.3.3

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
  SHA256:
3
- metadata.gz: f14fead382b4de9c274888ee9c417f5b7e500846e118b9e655af25b182164184
4
- data.tar.gz: 47edc08f7f760c868ae6c2e2443d4f7138ce23c4b260ae9a288e2b1c5d73f4a4
3
+ metadata.gz: 4c3b23fec66c0a1e150672c00be3bff512ae95edb8159c5f4d43b83198df9f0a
4
+ data.tar.gz: 1bfa70e4c8e9bb56c0d3e27e625239e03eeb16567119eee90f7c55ea9043146e
5
5
  SHA512:
6
- metadata.gz: daf9a9781dae2a7243c5b98f06d4a929526c2430d29e52a328d5a94c045a7e016c59844dbf72eed9d773da91f396e0c51efc5d1af6d307b69f2d8940af36084e
7
- data.tar.gz: 2e6e02d9a36ce06a0df77e7b732fafbb023cad0e3b0a33e107522b7d798ed9363e655e9c96da92c5a9af2f4961cfe460f33e6771a4bea671fa7998c9d1967801
6
+ metadata.gz: b32b27892082385431cc44a19f7552a6d1b788a55067576713ad9e9cff7ff147ea3ac693de7134730531af75285e4d1a62cceafe899a1857a85f51de3fc620b9
7
+ data.tar.gz: 1f46c52269a3c7df4d422813dfba7c6c391772cc9b3e3b64da9a79f9c1aeaa30561612d2ec5558d155953588a5a7fc39bcc40164f39565ed913566b570ee7615
@@ -61,7 +61,7 @@ module HermesMessengerOfTheGods
61
61
  endpoints.collect do |ep_name, endpoint|
62
62
  next if targeted_endpoints && !targeted_endpoints.include?(ep_name)
63
63
 
64
- Thread.new do
64
+ begin
65
65
  endpoint.dispatch!(self, endpoint_args) unless HermesMessengerOfTheGods.config.stub_dispatch
66
66
  register_success(ep_name, endpoint.result)
67
67
  rescue StandardError => e
@@ -70,7 +70,7 @@ module HermesMessengerOfTheGods
70
70
  ensure
71
71
  endpoint.teardown
72
72
  end
73
- end.compact.map(&:join)
73
+ end
74
74
 
75
75
  unless dispatch_errors.empty?
76
76
  klass = if successes.empty?
@@ -10,7 +10,7 @@ module HermesMessengerOfTheGods
10
10
  if instance_variable_defined?("@#{meth}")
11
11
  instance_variable_get("@#{meth}")
12
12
  else
13
- instance_variable_set("@#{meth}", default)
13
+ instance_variable_set("@#{meth}", default.respond_to?(:call) ? default.call() : default)
14
14
  end
15
15
  end
16
16
  end
@@ -25,5 +25,8 @@ module HermesMessengerOfTheGods
25
25
  attr_accessor_with_default :stub_dispatch, false
26
26
 
27
27
  attr_accessor_with_default :kill_on_consecutive_failures, false
28
+
29
+ attr_accessor_with_default :sqs_client, -> { Aws::SQS::Client.new }
30
+ attr_accessor_with_default :sns_client, -> { Aws::SNS::Client.new }
28
31
  end
29
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'aws-sdk-sns'
2
4
  require 'json'
3
5
 
@@ -5,15 +7,16 @@ module HermesMessengerOfTheGods
5
7
  module Endpoints
6
8
  class Sns < Base
7
9
  def sns_topic
8
- @sns_topic ||= Aws::SNS::Topic.new(self.endpoint,
9
- self.options[:client_options] || {}
10
- )
10
+ @sns_topic ||= Aws::SNS::Topic.new(endpoint,
11
+ {
12
+ client: HermesMessengerOfTheGods.configuration.sns_client
13
+ }.merge(options[:client_options] || {}))
11
14
  end
12
15
 
13
16
  def transmit(message, raw_message, dispatch_options = {})
14
17
  pub_opts = fetch_option(:publish_options, raw_message) || {}
15
18
 
16
- message = JSON.dump(message) if self.options[:jsonify]
19
+ message = JSON.dump(message) if options[:jsonify]
17
20
  sns_topic.publish(pub_opts.merge(dispatch_options, message: message))
18
21
  end
19
22
  end
@@ -16,7 +16,12 @@ module HermesMessengerOfTheGods
16
16
  end
17
17
 
18
18
  def poller
19
- @poller ||= Aws::SQS::QueuePoller.new(endpoint)
19
+ @poller ||= Aws::SQS::QueuePoller.new(
20
+ endpoint,
21
+ {
22
+ client: HermesMessengerOfTheGods.configuration.sqs_client
23
+ }.merge(options[:client_options] || {})
24
+ )
20
25
  end
21
26
 
22
27
  def inflight_messages
@@ -38,7 +43,7 @@ module HermesMessengerOfTheGods
38
43
  #
39
44
  # Break from polling
40
45
  def shutdown!
41
- say Logger::INFO, 'Shutdown command received'
46
+ warn 'Reveived shutdown signal'
42
47
  @shutdown = true
43
48
  end
44
49
 
@@ -86,7 +91,12 @@ module HermesMessengerOfTheGods
86
91
  end
87
92
 
88
93
  def queue
89
- @queue ||= Aws::SQS::Queue.new(endpoint, options[:client_options] || {})
94
+ @queue ||= Aws::SQS::Queue.new(
95
+ endpoint,
96
+ {
97
+ client: HermesMessengerOfTheGods.configuration.sqs_client
98
+ }.merge(options[:client_options] || {})
99
+ )
90
100
  end
91
101
 
92
102
  def queue_data
@@ -134,8 +144,8 @@ module HermesMessengerOfTheGods
134
144
  set_message_visibility(inflight_messages, new_time)
135
145
  sleep VISIBILITY_EXTEND_FREQUENCY
136
146
  rescue StandardError => e
137
- warn 'Error received trying to extend visibility'
138
- warn e.message
147
+ say_warn 'Error received trying to extend visibility'
148
+ say_warn e.message
139
149
 
140
150
  raise
141
151
  end
@@ -6,7 +6,7 @@ module HermesMessengerOfTheGods
6
6
 
7
7
  included do
8
8
  Logger::Severity.constants.each do |sev|
9
- define_method(sev.downcase) do |msg = nil, &blk|
9
+ define_method("say_#{sev.downcase}") do |msg = nil, &blk|
10
10
  say("Logger::#{sev}".constantize, msg, &blk)
11
11
  end
12
12
  end
@@ -13,41 +13,41 @@ module HermesMessengerOfTheGods
13
13
 
14
14
  @subscriptions = [
15
15
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.starting') do |*_, payload|
16
- payload[:worker].info { "Starting Worker" }
16
+ payload[:worker].say_info { "Starting Worker" }
17
17
  end,
18
18
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.run_job') do |_, start, finish, _, payload|
19
- payload[:worker].debug { "Completed #{to_log_s(payload[:job])} in #{finish - start}s" }
19
+ payload[:worker].say_debug { "Completed #{to_log_s(payload[:job])} in #{finish - start}s" }
20
20
  end,
21
21
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.starting_job') do |*_, payload|
22
- payload[:worker].info { "Starting Job #{to_log_s(payload[:job])}" }
22
+ payload[:worker].say_info { "Starting Job #{to_log_s(payload[:job])}" }
23
23
  end,
24
24
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.success') do |*_, payload|
25
- payload[:worker].info { "Finished Job #{to_log_s(payload[:job])}" }
25
+ payload[:worker].say_info { "Finished Job #{to_log_s(payload[:job])}" }
26
26
  end,
27
27
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.failure') do |*_, payload|
28
- payload[:worker].error { "Error in #{to_log_s(payload[:job])}: #{payload[:error].message}" }
29
- payload[:worker].debug { "backtrace: #{payload[:error].backtrace}" }
28
+ payload[:worker].say_error { "Error in #{to_log_s(payload[:job])}: #{payload[:error].message}" }
29
+ payload[:worker].say_debug { "backtrace: #{payload[:error].backtrace}" }
30
30
  end,
31
31
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.worker.fatal_error') do |*_, payload|
32
- payload[:worker].error { "Fatal Error: #{to_log_s(payload[:job])}: #{payload[:exception].message}" }
33
- payload[:worker].debug { "backtrace: #{payload[:exception].backtrace}" }
32
+ payload[:worker].say_error { "Fatal Error: #{to_log_s(payload[:job])}: #{payload[:exception].message}" }
33
+ payload[:worker].say_debug { "backtrace: #{payload[:exception].backtrace}" }
34
34
  end,
35
35
  # Message Output
36
36
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.message.dispatch') do |_, _start, _finish, _, payload|
37
- payload[:message].info { "Dispatch complete in #{to_log_s(payload[:job])}s" }
37
+ payload[:message].say_info { "Dispatch complete in #{to_log_s(payload[:job])}s" }
38
38
  end,
39
39
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.message.dispatch_failure') do |*_, payload|
40
- payload[:message].debug { "Dispatch failure to #{to_log_s(payload[:job])}: #{payload[:exception].inspect}" }
40
+ payload[:message].say_debug { "Dispatch failure to #{to_log_s(payload[:job])}: #{payload[:exception].inspect}" }
41
41
  end,
42
42
  # Endpoint Output
43
43
  ActiveSupport::Notifications.subscribe('hermes_messenger_of_the_gods.endpoint.dispatch') do |_, start, finish, _, payload|
44
- payload[:endpoint].info { "Dispatch complete in #{finish - start}s #{" FAILED" if payload.has_key?(:exception)}" }
44
+ payload[:endpoint].say_info { "Dispatch complete in #{finish - start}s #{" FAILED" if payload.has_key?(:exception)}" }
45
45
  end,
46
46
  ActiveSupport::Notifications.subscribe(/hermes_messenger_of_the_gods.endpoint.(dispatch|final)_failure/) do |name, *_, payload|
47
- payload[:endpoint].debug { "Dispatch #{"final " if name.include?('final_')} failure ##{payload[:try]} to #{payload[:endpoint_name]}: #{payload[:exception].inspect}" }
47
+ payload[:endpoint].say_debug { "Dispatch #{"final " if name.include?('final_')} failure ##{payload[:try]} to #{payload[:endpoint_name]}: #{payload[:exception].inspect}" }
48
48
  end,
49
49
  ActiveSupport::Notifications.subscribe(/hermes_messenger_of_the_gods.endpoint.read_failure/) do |name, *_, payload|
50
- payload[:endpoint].error { "A message was received that could not be decoded: #{payload[:exception].message}" }
50
+ payload[:endpoint].say_error { "A message was received that could not be decoded: #{payload[:exception].message}" }
51
51
  end,
52
52
  ]
53
53
  end
@@ -1,3 +1,3 @@
1
1
  module HermesMessengerOfTheGods
2
- VERSION = '2.3.0'
2
+ VERSION = '2.3.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hermes_messenger_of_the_gods
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Malinconico
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-07-07 00:00:00.000000000 Z
12
+ date: 2022-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel