eventboss 1.5.0 → 1.7.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 +4 -4
- data/Gemfile.lock +10 -10
- data/lib/eventboss/configuration.rb +1 -2
- data/lib/eventboss/error_handlers/non_existent_queue_handler.rb +12 -0
- data/lib/eventboss/extensions.rb +1 -0
- data/lib/eventboss/launcher.rb +2 -1
- data/lib/eventboss/long_poller.rb +5 -0
- data/lib/eventboss/version.rb +1 -1
- data/lib/eventboss/worker.rb +1 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b837d9db4a587bec35fc7d31765551263011c2bd33559944c7de34ffa885c3b
|
4
|
+
data.tar.gz: 3b0f1808873bf4a8d2b5407b82de0ced2f86a2bd5f67775f4f3c73493dfe1bd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7c7a8696654ccefd5d25596a9f439c8fbbd8ca41a71525f195010fbb0f469db5f6937632e0b6c46a67cb774b67fc3aeec174e507e649f46c2ab76e55ea56dee
|
7
|
+
data.tar.gz: 4d7c2b81fc401f5d7890ad1144ee87cd933a34470110a50b7d94e6d88fbcf5792f938777f7b93b3ec37280dc09d5b7c17f2e2b9ac9dc34f50f0c8ed4075af8ed
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eventboss (1.
|
4
|
+
eventboss (1.7.0)
|
5
5
|
aws-sdk-sns (>= 1.1.0)
|
6
6
|
aws-sdk-sqs (>= 1.3.0)
|
7
7
|
dotenv (~> 2.1, >= 2.1.1)
|
@@ -9,20 +9,20 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
aws-eventstream (1.1.
|
13
|
-
aws-partitions (1.
|
14
|
-
aws-sdk-core (3.
|
12
|
+
aws-eventstream (1.1.1)
|
13
|
+
aws-partitions (1.432.0)
|
14
|
+
aws-sdk-core (3.113.0)
|
15
15
|
aws-eventstream (~> 1, >= 1.0.2)
|
16
16
|
aws-partitions (~> 1, >= 1.239.0)
|
17
17
|
aws-sigv4 (~> 1.1)
|
18
18
|
jmespath (~> 1.0)
|
19
|
-
aws-sdk-sns (1.
|
20
|
-
aws-sdk-core (~> 3, >= 3.
|
19
|
+
aws-sdk-sns (1.37.0)
|
20
|
+
aws-sdk-core (~> 3, >= 3.109.0)
|
21
21
|
aws-sigv4 (~> 1.1)
|
22
|
-
aws-sdk-sqs (1.
|
23
|
-
aws-sdk-core (~> 3, >= 3.
|
22
|
+
aws-sdk-sqs (1.35.0)
|
23
|
+
aws-sdk-core (~> 3, >= 3.109.0)
|
24
24
|
aws-sigv4 (~> 1.1)
|
25
|
-
aws-sigv4 (1.2.
|
25
|
+
aws-sigv4 (1.2.3)
|
26
26
|
aws-eventstream (~> 1, >= 1.0.2)
|
27
27
|
diff-lcs (1.3)
|
28
28
|
dotenv (2.7.6)
|
@@ -52,4 +52,4 @@ DEPENDENCIES
|
|
52
52
|
rspec (~> 3.0)
|
53
53
|
|
54
54
|
BUNDLED WITH
|
55
|
-
1.
|
55
|
+
2.1.4
|
@@ -25,14 +25,13 @@ module Eventboss
|
|
25
25
|
:sns_sqs_name_infix,
|
26
26
|
:listeners
|
27
27
|
|
28
|
-
|
29
28
|
def raise_on_missing_configuration
|
30
29
|
defined_or_default('raise_on_missing_configuration') { (ENV['EVENTBOSS_RAISE_ON_MISSING_CONFIGURATION'] || ENV['EVENTBUS_RAISE_ON_MISSING_CONFIGURATION'])&.downcase == 'true' }
|
31
30
|
end
|
32
31
|
|
33
32
|
def error_handlers
|
34
33
|
defined_or_default('error_handlers') do
|
35
|
-
[ErrorHandlers::Logger.new].tap do |handlers|
|
34
|
+
[ErrorHandlers::Logger.new, ErrorHandlers::NonExistentQueueHandler.new].tap do |handlers|
|
36
35
|
handlers << ErrorHandlers::DbConnectionDropHandler.new if defined?(::ActiveRecord::StatementInvalid)
|
37
36
|
handlers << ErrorHandlers::DbConnectionNotEstablishedHandler.new if defined?(::ActiveRecord::ConnectionNotEstablished)
|
38
37
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Eventboss
|
2
|
+
module ErrorHandlers
|
3
|
+
class NonExistentQueueHandler
|
4
|
+
def call(exception, context = {})
|
5
|
+
if exception.class == ::Aws::SQS::Errors::NonExistentQueue
|
6
|
+
queue = context.fetch(:poller_id, "").sub('poller-', '')
|
7
|
+
Eventboss.logger.error("Queue doesn't exist: " + queue)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/eventboss/extensions.rb
CHANGED
@@ -3,3 +3,4 @@ require 'eventboss/error_handlers/airbrake'
|
|
3
3
|
require 'eventboss/error_handlers/rollbar'
|
4
4
|
require 'eventboss/error_handlers/db_connection_drop_handler'
|
5
5
|
require 'eventboss/error_handlers/db_connection_not_established_handler'
|
6
|
+
require 'eventboss/error_handlers/non_existent_queue_handler'
|
data/lib/eventboss/launcher.rb
CHANGED
@@ -34,6 +34,7 @@ module Eventboss
|
|
34
34
|
@bus.clear
|
35
35
|
@pollers.each(&:terminate)
|
36
36
|
@workers.each(&:terminate)
|
37
|
+
@bus.close
|
37
38
|
|
38
39
|
wait_for_shutdown
|
39
40
|
hard_shutdown
|
@@ -70,7 +71,7 @@ module Eventboss
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def new_worker(id)
|
73
|
-
Worker.new(self, id, @bus)
|
74
|
+
Worker.new(self, "worker-#{id}", @bus)
|
74
75
|
end
|
75
76
|
|
76
77
|
def new_poller(queue, listener)
|
@@ -45,6 +45,8 @@ module Eventboss
|
|
45
45
|
fetch_messages.each do |message|
|
46
46
|
logger.debug(id) { "enqueueing message #{message.message_id}" }
|
47
47
|
@bus << UnitOfWork.new(@client, queue, listener, message)
|
48
|
+
rescue ClosedQueueError
|
49
|
+
logger.info(id) { "skip message #{message.message_id} enqueuing due to closed queue" }
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
@@ -53,6 +55,9 @@ module Eventboss
|
|
53
55
|
@launcher.poller_stopped(self)
|
54
56
|
rescue Eventboss::Shutdown
|
55
57
|
@launcher.poller_stopped(self)
|
58
|
+
rescue Aws::SQS::Errors::NonExistentQueue
|
59
|
+
handle_exception(exception, poller_id: id)
|
60
|
+
@launcher.poller_stopped(self)
|
56
61
|
rescue StandardError => exception
|
57
62
|
handle_exception(exception, poller_id: id)
|
58
63
|
# Give a chance for temporary AWS errors to be resolved
|
data/lib/eventboss/version.rb
CHANGED
data/lib/eventboss/worker.rb
CHANGED
@@ -7,7 +7,7 @@ module Eventboss
|
|
7
7
|
attr_reader :id
|
8
8
|
|
9
9
|
def initialize(launcher, id, bus, restart_on: [Exception])
|
10
|
-
@id =
|
10
|
+
@id = id
|
11
11
|
@launcher = launcher
|
12
12
|
@bus = bus
|
13
13
|
@thread = nil
|
@@ -45,7 +45,6 @@ module Eventboss
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def kill(wait = false)
|
48
|
-
stop_token
|
49
48
|
return unless @thread
|
50
49
|
@thread.raise Eventboss::Shutdown
|
51
50
|
@thread.value if wait
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventboss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AirHelp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-sqs
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/eventboss/error_handlers/db_connection_drop_handler.rb
|
129
129
|
- lib/eventboss/error_handlers/db_connection_not_established_handler.rb
|
130
130
|
- lib/eventboss/error_handlers/logger.rb
|
131
|
+
- lib/eventboss/error_handlers/non_existent_queue_handler.rb
|
131
132
|
- lib/eventboss/error_handlers/rollbar.rb
|
132
133
|
- lib/eventboss/extensions.rb
|
133
134
|
- lib/eventboss/fetcher.rb
|
@@ -172,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
173
|
- !ruby/object:Gem::Version
|
173
174
|
version: '0'
|
174
175
|
requirements: []
|
175
|
-
rubygems_version: 3.1.
|
176
|
+
rubygems_version: 3.1.6
|
176
177
|
signing_key:
|
177
178
|
specification_version: 4
|
178
179
|
summary: Eventboss Ruby Client.
|