eventboss 1.3.2 → 1.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 +4 -4
- data/Gemfile.lock +5 -5
- data/lib/eventboss/railtie.rb +2 -1
- data/lib/eventboss/version.rb +1 -1
- data/lib/tasks/eventboss.rake +50 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75049f48f1c8433cfa188e43b2b01aa1362460f14e54cf86147dddea8f37b554
|
4
|
+
data.tar.gz: 22828a987f1b8d6e3eaa3b1c6944a515e379729ab19190c99c232277d0f71463
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f11ff92660d9eb27d1d5d6b0fb7c778887c5fccf7e133d6f0d27679d751aa078c93e7e5b0f90fc259a0c86a2a17e82480ffb985ec0ecead9c2fedb0779f5fa1
|
7
|
+
data.tar.gz: e2b5673cfce08d06ffef4ef74ab742765e45b03905ebaad2cbd32495c0b0b28ec3b4c7620c0180c8e0e9662b9992ea115a4621397040f98dbd3535d852978db8
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eventboss (1.3.
|
4
|
+
eventboss (1.3.3)
|
5
5
|
aws-sdk-sns (>= 1.1.0)
|
6
6
|
aws-sdk-sqs (>= 1.3.0)
|
7
7
|
dotenv (~> 2.1, >= 2.1.1)
|
@@ -10,8 +10,8 @@ GEM
|
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
12
|
aws-eventstream (1.0.3)
|
13
|
-
aws-partitions (1.
|
14
|
-
aws-sdk-core (3.
|
13
|
+
aws-partitions (1.281.0)
|
14
|
+
aws-sdk-core (3.90.1)
|
15
15
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
16
16
|
aws-partitions (~> 1, >= 1.239.0)
|
17
17
|
aws-sigv4 (~> 1.1)
|
@@ -22,12 +22,12 @@ GEM
|
|
22
22
|
aws-sdk-sqs (1.23.1)
|
23
23
|
aws-sdk-core (~> 3, >= 3.71.0)
|
24
24
|
aws-sigv4 (~> 1.1)
|
25
|
-
aws-sigv4 (1.1.
|
25
|
+
aws-sigv4 (1.1.1)
|
26
26
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
27
27
|
diff-lcs (1.3)
|
28
28
|
dotenv (2.7.5)
|
29
29
|
jmespath (1.4.0)
|
30
|
-
rake (
|
30
|
+
rake (13.0.1)
|
31
31
|
rspec (3.7.0)
|
32
32
|
rspec-core (~> 3.7.0)
|
33
33
|
rspec-expectations (~> 3.7.0)
|
data/lib/eventboss/railtie.rb
CHANGED
@@ -2,8 +2,9 @@ class Eventboss::Railtie < Rails::Railtie
|
|
2
2
|
rake_tasks do
|
3
3
|
load 'tasks/eventboss.rake'
|
4
4
|
|
5
|
-
# Load rails environment before executing reload.
|
5
|
+
# Load rails environment before executing reload and purge.
|
6
6
|
# It makes sure to load configuration file.
|
7
7
|
task 'eventboss:deadletter:reload': :environment
|
8
|
+
task 'eventboss:deadletter:purge': :environment
|
8
9
|
end
|
9
10
|
end
|
data/lib/eventboss/version.rb
CHANGED
data/lib/tasks/eventboss.rake
CHANGED
@@ -7,7 +7,7 @@ namespace :eventboss do
|
|
7
7
|
source_app = args[:source_app]
|
8
8
|
event_name = args[:event_name]
|
9
9
|
|
10
|
-
# Zero means
|
10
|
+
# Zero means: fetch all messages
|
11
11
|
max_messages = args[:max_messages].to_i
|
12
12
|
|
13
13
|
# Ensure we don't fetch more than 10 messages from SQS
|
@@ -15,13 +15,8 @@ namespace :eventboss do
|
|
15
15
|
|
16
16
|
abort "[#{task.name}] At least event name should be passed as argument" unless event_name
|
17
17
|
|
18
|
-
queue_name =
|
19
|
-
|
20
|
-
Eventboss.configuration.sns_sqs_name_infix,
|
21
|
-
source_app,
|
22
|
-
event_name,
|
23
|
-
Eventboss.env
|
24
|
-
].compact.join('-')
|
18
|
+
queue_name = compose_queue_name(source_app, event_name)
|
19
|
+
|
25
20
|
puts "[#{task.name}] Reloading #{queue_name}-deadletter (max: #{ max_messages }, batch: #{ batch_size })"
|
26
21
|
queue = Eventboss::Queue.new("#{queue_name}-deadletter")
|
27
22
|
send_queue = Eventboss::Queue.new(queue_name)
|
@@ -49,5 +44,52 @@ namespace :eventboss do
|
|
49
44
|
break if max_messages > 0 && total >= max_messages
|
50
45
|
end
|
51
46
|
end
|
47
|
+
|
48
|
+
desc 'Purge deadletter queue'
|
49
|
+
task :purge, [:event_name, :source_app, :max_messages] do |task, args|
|
50
|
+
source_app = args[:source_app]
|
51
|
+
event_name = args[:event_name]
|
52
|
+
|
53
|
+
# Zero means: fetch all messages
|
54
|
+
max_messages = args[:max_messages].to_i
|
55
|
+
|
56
|
+
# Ensure we don't fetch more than 10 messages from SQS
|
57
|
+
batch_size = max_messages == 0 ? 10 : [10, max_messages].min
|
58
|
+
|
59
|
+
abort "[#{task.name}] At least event name should be passed as argument" unless event_name
|
60
|
+
|
61
|
+
queue_name = compose_queue_name(source_app, event_name)
|
62
|
+
|
63
|
+
puts "[#{task.name}] Purging #{queue_name}-deadletter (max: #{ max_messages }, batch: #{ batch_size })"
|
64
|
+
queue = Eventboss::Queue.new("#{queue_name}-deadletter")
|
65
|
+
puts "[#{task.name}] #{queue.url}"
|
66
|
+
|
67
|
+
fetcher = Eventboss::Fetcher.new(Eventboss.configuration)
|
68
|
+
total = 0
|
69
|
+
loop do
|
70
|
+
messages = fetcher.fetch(queue, batch_size)
|
71
|
+
break if messages.count.zero?
|
72
|
+
|
73
|
+
messages.each do |message|
|
74
|
+
puts "[#{task.name}] Deleting message: #{message.body}"
|
75
|
+
fetcher.delete(queue, message)
|
76
|
+
|
77
|
+
total += 1
|
78
|
+
break if max_messages > 0 && total >= max_messages
|
79
|
+
end
|
80
|
+
|
81
|
+
break if max_messages > 0 && total >= max_messages
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def compose_queue_name(source_app, event_name)
|
86
|
+
[
|
87
|
+
Eventboss.configuration.eventboss_app_name,
|
88
|
+
Eventboss.configuration.sns_sqs_name_infix,
|
89
|
+
source_app,
|
90
|
+
event_name,
|
91
|
+
Eventboss.env
|
92
|
+
].compact.join('-')
|
93
|
+
end
|
52
94
|
end
|
53
95
|
end
|
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.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AirHelp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-sqs
|