karafka 2.0.20 → 2.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +2 -2
- data/karafka.gemspec +7 -2
- data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +1 -2
- data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +37 -0
- data/lib/karafka/pro/processing/jobs_builder.rb +12 -0
- data/lib/karafka/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +9 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9de6cb2d19b24258eb60548b383e664dc035f1f48ffc7077ca5f238b3a85aa3e
|
4
|
+
data.tar.gz: 706d4e81a74b1aad9d1f9b13a67d168a7ef3c45088b89ec710d29abb3a767f11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a22be6ff489f9f7cce39e0e4d6d374a70680124842afeeb962e33eaa8c6cd3db8cbcd6f3251543653c98777d025b6d9b0385f4580d92fd4b807e835a68296a43
|
7
|
+
data.tar.gz: 466d9723427771594701071e5a27a3a1a53b6b4efce9ffa6b241f5261c9a887136b2a8a4a90b35e216b2af01539336bde5377f4edc1ab99837087dd751b830a8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Karafka framework changelog
|
2
2
|
|
3
|
+
## 20.0.21 (2022-11-25)
|
4
|
+
- [Improvement] Make revocation jobs for LRJ topics non-blocking to prevent blocking polling when someone uses non-revocation aware LRJ jobs and revocation happens.
|
5
|
+
|
3
6
|
## 2.0.20 (2022-11-24)
|
4
7
|
- [Improvement] Support `group.instance.id` assignment (static group membership) for a case where a single consumer group has multiple subscription groups (#1173).
|
5
8
|
|
data/Gemfile.lock
CHANGED
data/karafka.gemspec
CHANGED
@@ -12,9 +12,14 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.authors = ['Maciej Mensfeld']
|
13
13
|
spec.email = %w[contact@karafka.io]
|
14
14
|
spec.homepage = 'https://karafka.io'
|
15
|
-
spec.summary = 'Efficient Kafka processing framework for Ruby and Rails'
|
16
|
-
spec.description = 'Framework used to simplify Apache Kafka based Ruby applications development'
|
17
15
|
spec.licenses = ['LGPL-3.0', 'Commercial']
|
16
|
+
spec.summary = 'Karafka is Ruby and Rails efficient Kafka processing framework.'
|
17
|
+
spec.description = <<-DESC
|
18
|
+
Karafka is Ruby and Rails efficient Kafka processing framework.
|
19
|
+
|
20
|
+
Karafka allows you to capture everything that happens in your systems in large scale,
|
21
|
+
without having to focus on things that are not your business domain.
|
22
|
+
DESC
|
18
23
|
|
19
24
|
spec.add_dependency 'karafka-core', '>= 2.0.4', '< 3.0.0'
|
20
25
|
spec.add_dependency 'rdkafka', '>= 0.12'
|
@@ -18,8 +18,7 @@ module Karafka
|
|
18
18
|
# Pro jobs
|
19
19
|
module Jobs
|
20
20
|
# The main job type in a non-blocking variant.
|
21
|
-
# This variant works "like" the regular consumption but
|
22
|
-
# as it is needed until a job is done.
|
21
|
+
# This variant works "like" the regular consumption but does not block the queue.
|
23
22
|
#
|
24
23
|
# It can be useful when having long lasting jobs that would exceed `max.poll.interval`
|
25
24
|
# if would block.
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This Karafka component is a Pro component under a commercial license.
|
4
|
+
# This Karafka component is NOT licensed under LGPL.
|
5
|
+
#
|
6
|
+
# All of the commercial components are present in the lib/karafka/pro directory of this
|
7
|
+
# repository and their usage requires commercial license agreement.
|
8
|
+
#
|
9
|
+
# Karafka has also commercial-friendly license, commercial support and commercial components.
|
10
|
+
#
|
11
|
+
# By sending a pull request to the pro components, you are agreeing to transfer the copyright of
|
12
|
+
# your code to Maciej Mensfeld.
|
13
|
+
|
14
|
+
module Karafka
|
15
|
+
module Pro
|
16
|
+
# Pro components related to processing part of Karafka
|
17
|
+
module Processing
|
18
|
+
# Pro jobs
|
19
|
+
module Jobs
|
20
|
+
# The revoked job type in a non-blocking variant.
|
21
|
+
# This variant works "like" the regular revoked but does not block the queue.
|
22
|
+
#
|
23
|
+
# It can be useful when having long lasting jobs that would exceed `max.poll.interval`
|
24
|
+
# in scenarios where there are more jobs than threads, without this being async we
|
25
|
+
# would potentially stop polling
|
26
|
+
class RevokedNonBlocking < ::Karafka::Processing::Jobs::Revoked
|
27
|
+
# Makes this job non-blocking from the start
|
28
|
+
# @param args [Array] any arguments accepted by `::Karafka::Processing::Jobs::Revoked`
|
29
|
+
def initialize(*args)
|
30
|
+
super
|
31
|
+
@non_blocking = true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -28,6 +28,18 @@ module Karafka
|
|
28
28
|
super
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
# @param executor [Karafka::Processing::Executor]
|
33
|
+
# @return [Karafka::Processing::Jobs::Revoked] revocation job for non LRJ
|
34
|
+
# @return [Karafka::Processing::Jobs::RevokedNonBlocking] revocation job that is
|
35
|
+
# non-blocking, so when revocation job is scheduled for LRJ it also will not block
|
36
|
+
def revoked(executor)
|
37
|
+
if executor.topic.long_running_job?
|
38
|
+
Jobs::RevokedNonBlocking.new(executor)
|
39
|
+
else
|
40
|
+
super
|
41
|
+
end
|
42
|
+
end
|
31
43
|
end
|
32
44
|
end
|
33
45
|
end
|
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.21
|
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: 2022-11-
|
38
|
+
date: 2022-11-25 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: karafka-core
|
@@ -119,7 +119,11 @@ dependencies:
|
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '2.3'
|
122
|
-
description:
|
122
|
+
description: |2
|
123
|
+
Karafka is Ruby and Rails efficient Kafka processing framework.
|
124
|
+
|
125
|
+
Karafka allows you to capture everything that happens in your systems in large scale,
|
126
|
+
without having to focus on things that are not your business domain.
|
123
127
|
email:
|
124
128
|
- contact@karafka.io
|
125
129
|
executables:
|
@@ -227,6 +231,7 @@ files:
|
|
227
231
|
- lib/karafka/pro/performance_tracker.rb
|
228
232
|
- lib/karafka/pro/processing/coordinator.rb
|
229
233
|
- lib/karafka/pro/processing/jobs/consume_non_blocking.rb
|
234
|
+
- lib/karafka/pro/processing/jobs/revoked_non_blocking.rb
|
230
235
|
- lib/karafka/pro/processing/jobs_builder.rb
|
231
236
|
- lib/karafka/pro/processing/partitioner.rb
|
232
237
|
- lib/karafka/pro/processing/scheduler.rb
|
@@ -353,5 +358,5 @@ requirements: []
|
|
353
358
|
rubygems_version: 3.3.7
|
354
359
|
signing_key:
|
355
360
|
specification_version: 4
|
356
|
-
summary:
|
361
|
+
summary: Karafka is Ruby and Rails efficient Kafka processing framework.
|
357
362
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|