karafka 2.0.26 → 2.0.28
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +30 -794
- data/Gemfile.lock +17 -19
- data/config/locales/pro_errors.yml +1 -1
- data/karafka.gemspec +2 -4
- data/lib/karafka/connection/listener.rb +1 -1
- data/lib/karafka/pro/active_job/consumer.rb +3 -2
- data/lib/karafka/pro/processing/collapser.rb +62 -0
- data/lib/karafka/pro/processing/coordinator.rb +17 -0
- data/lib/karafka/pro/processing/partitioner.rb +19 -5
- data/lib/karafka/pro/processing/strategies/aj_dlq_lrj_mom_vp.rb +70 -0
- data/lib/karafka/pro/processing/strategies/aj_dlq_mom_vp.rb +68 -0
- data/lib/karafka/pro/processing/strategies/aj_lrj_mom_vp.rb +1 -0
- data/lib/karafka/pro/processing/strategies/aj_mom_vp.rb +4 -0
- data/lib/karafka/pro/processing/strategies/default.rb +2 -2
- data/lib/karafka/pro/processing/strategies/dlq.rb +31 -7
- data/lib/karafka/pro/processing/strategies/dlq_lrj_vp.rb +36 -0
- data/lib/karafka/pro/processing/strategies/dlq_vp.rb +37 -0
- data/lib/karafka/pro/processing/strategies/lrj_vp.rb +1 -0
- data/lib/karafka/pro/processing/strategies/vp.rb +5 -0
- data/lib/karafka/pro/routing/features/dead_letter_queue/contract.rb +6 -5
- data/lib/karafka/processing/coordinator.rb +27 -8
- data/lib/karafka/processing/partitioner.rb +3 -1
- data/lib/karafka/processing/strategies/default.rb +2 -3
- data/lib/karafka/setup/config.rb +3 -1
- data/lib/karafka/templates/karafka.rb.erb +1 -1
- data/lib/karafka/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +12 -7
- metadata.gz.sig +0 -0
@@ -71,18 +71,28 @@ module Karafka
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
-
#
|
75
|
-
|
76
|
-
# consumption processing state.
|
77
|
-
def consumption(consumer)
|
74
|
+
# Is all the consumption done and finished successfully for this coordinator
|
75
|
+
def success?
|
78
76
|
@mutex.synchronize do
|
79
|
-
@
|
77
|
+
@running_jobs.zero? && @consumptions.values.all?(&:success?)
|
80
78
|
end
|
81
79
|
end
|
82
80
|
|
83
|
-
#
|
84
|
-
|
85
|
-
|
81
|
+
# Mark given consumption on consumer as successful
|
82
|
+
# @param consumer [Karafka::BaseConsumer] consumer that finished successfully
|
83
|
+
def success!(consumer)
|
84
|
+
@mutex.synchronize do
|
85
|
+
consumption(consumer).success!
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# Mark given consumption on consumer as failed
|
90
|
+
# @param consumer [Karafka::BaseConsumer] consumer that failed
|
91
|
+
# @param error [StandardError] error that occurred
|
92
|
+
def failure!(consumer, error)
|
93
|
+
@mutex.synchronize do
|
94
|
+
consumption(consumer).failure!(error)
|
95
|
+
end
|
86
96
|
end
|
87
97
|
|
88
98
|
# Marks given coordinator for processing group as revoked
|
@@ -113,6 +123,15 @@ module Karafka
|
|
113
123
|
def manual_pause?
|
114
124
|
@pause_tracker.paused? && @manual_pause
|
115
125
|
end
|
126
|
+
|
127
|
+
private
|
128
|
+
|
129
|
+
# @param consumer [Object] karafka consumer (normal or pro)
|
130
|
+
# @return [Karafka::Processing::Result] result object which we can use to indicate
|
131
|
+
# consumption processing state.
|
132
|
+
def consumption(consumer)
|
133
|
+
@consumptions[consumer] ||= Processing::Result.new
|
134
|
+
end
|
116
135
|
end
|
117
136
|
end
|
118
137
|
end
|
@@ -12,9 +12,11 @@ module Karafka
|
|
12
12
|
|
13
13
|
# @param _topic [String] topic name
|
14
14
|
# @param messages [Array<Karafka::Messages::Message>] karafka messages
|
15
|
+
# @param _coordinator [Karafka::Processing::Coordinator] processing coordinator that will
|
16
|
+
# be used with those messages
|
15
17
|
# @yieldparam [Integer] group id
|
16
18
|
# @yieldparam [Array<Karafka::Messages::Message>] karafka messages
|
17
|
-
def call(_topic, messages)
|
19
|
+
def call(_topic, messages, _coordinator)
|
18
20
|
yield(0, messages)
|
19
21
|
end
|
20
22
|
end
|
@@ -31,10 +31,9 @@ module Karafka
|
|
31
31
|
end
|
32
32
|
|
33
33
|
# Mark job as successful
|
34
|
-
coordinator.
|
34
|
+
coordinator.success!(self)
|
35
35
|
rescue StandardError => e
|
36
|
-
|
37
|
-
coordinator.consumption(self).failure!(e)
|
36
|
+
coordinator.failure!(self, e)
|
38
37
|
|
39
38
|
# Re-raise so reported in the consumer
|
40
39
|
raise e
|
data/lib/karafka/setup/config.rb
CHANGED
@@ -16,7 +16,6 @@ module Karafka
|
|
16
16
|
|
17
17
|
# Defaults for kafka settings, that will be overwritten only if not present already
|
18
18
|
KAFKA_DEFAULTS = {
|
19
|
-
'client.id': 'karafka',
|
20
19
|
# We emit the statistics by default, so all the instrumentation and web-ui work out of
|
21
20
|
# the box, without requiring users to take any extra actions aside from enabling.
|
22
21
|
'statistics.interval.ms': 5_000
|
@@ -193,6 +192,9 @@ module Karafka
|
|
193
192
|
config.kafka[key] = value
|
194
193
|
end
|
195
194
|
|
195
|
+
# Use Karafka client_id as kafka client id if not set
|
196
|
+
config.kafka[:'client.id'] ||= config.client_id
|
197
|
+
|
196
198
|
return if Karafka::App.env.production?
|
197
199
|
|
198
200
|
KAFKA_DEV_DEFAULTS.each do |key, value|
|
@@ -43,7 +43,7 @@ class KarafkaApp < Karafka::App
|
|
43
43
|
routes.draw do
|
44
44
|
<% if rails? -%>
|
45
45
|
# Uncomment this if you use Karafka with ActiveJob
|
46
|
-
# You
|
46
|
+
# You need to define the topic per each queue name you use
|
47
47
|
# active_job_topic :default
|
48
48
|
<% end -%>
|
49
49
|
topic :example do
|
data/lib/karafka/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
Qf04B9ceLUaC4fPVEz10FyobjaFoY4i32xRto3XnrzeAgfEe4swLq8bQsR3w/EF3
|
36
36
|
MGU0FeSV2Yj7Xc2x/7BzLK8xQn5l7Yy75iPF+KP3vVmDHnNl
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2023-01-
|
38
|
+
date: 2023-01-25 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: karafka-core
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.0.
|
46
|
+
version: 2.0.9
|
47
47
|
- - "<"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 3.0.0
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 2.0.
|
56
|
+
version: 2.0.9
|
57
57
|
- - "<"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 3.0.0
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
requirements:
|
78
78
|
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.4.
|
80
|
+
version: 2.4.9
|
81
81
|
- - "<"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 3.0.0
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.4.
|
90
|
+
version: 2.4.9
|
91
91
|
- - "<"
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: 3.0.0
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- lib/karafka/pro/encryption/setup/config.rb
|
225
225
|
- lib/karafka/pro/loader.rb
|
226
226
|
- lib/karafka/pro/performance_tracker.rb
|
227
|
+
- lib/karafka/pro/processing/collapser.rb
|
227
228
|
- lib/karafka/pro/processing/coordinator.rb
|
228
229
|
- lib/karafka/pro/processing/jobs/consume_non_blocking.rb
|
229
230
|
- lib/karafka/pro/processing/jobs/revoked_non_blocking.rb
|
@@ -231,7 +232,9 @@ files:
|
|
231
232
|
- lib/karafka/pro/processing/partitioner.rb
|
232
233
|
- lib/karafka/pro/processing/scheduler.rb
|
233
234
|
- lib/karafka/pro/processing/strategies/aj_dlq_lrj_mom.rb
|
235
|
+
- lib/karafka/pro/processing/strategies/aj_dlq_lrj_mom_vp.rb
|
234
236
|
- lib/karafka/pro/processing/strategies/aj_dlq_mom.rb
|
237
|
+
- lib/karafka/pro/processing/strategies/aj_dlq_mom_vp.rb
|
235
238
|
- lib/karafka/pro/processing/strategies/aj_lrj_mom.rb
|
236
239
|
- lib/karafka/pro/processing/strategies/aj_lrj_mom_vp.rb
|
237
240
|
- lib/karafka/pro/processing/strategies/aj_mom.rb
|
@@ -241,7 +244,9 @@ files:
|
|
241
244
|
- lib/karafka/pro/processing/strategies/dlq.rb
|
242
245
|
- lib/karafka/pro/processing/strategies/dlq_lrj.rb
|
243
246
|
- lib/karafka/pro/processing/strategies/dlq_lrj_mom.rb
|
247
|
+
- lib/karafka/pro/processing/strategies/dlq_lrj_vp.rb
|
244
248
|
- lib/karafka/pro/processing/strategies/dlq_mom.rb
|
249
|
+
- lib/karafka/pro/processing/strategies/dlq_vp.rb
|
245
250
|
- lib/karafka/pro/processing/strategies/lrj.rb
|
246
251
|
- lib/karafka/pro/processing/strategies/lrj_mom.rb
|
247
252
|
- lib/karafka/pro/processing/strategies/lrj_vp.rb
|
@@ -343,7 +348,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
343
348
|
requirements:
|
344
349
|
- - ">="
|
345
350
|
- !ruby/object:Gem::Version
|
346
|
-
version:
|
351
|
+
version: '0'
|
347
352
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
348
353
|
requirements:
|
349
354
|
- - ">="
|
metadata.gz.sig
CHANGED
Binary file
|