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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3b857c4c930396d4cac4682e4350c4c5fdc2888128dfade3f06e21a02e90c29
4
- data.tar.gz: 4f8fdb66df24164ec65886d5b4c4ba766dda9c7d4d23a7a301920a8adb21e16e
3
+ metadata.gz: 9de6cb2d19b24258eb60548b383e664dc035f1f48ffc7077ca5f238b3a85aa3e
4
+ data.tar.gz: 706d4e81a74b1aad9d1f9b13a67d168a7ef3c45088b89ec710d29abb3a767f11
5
5
  SHA512:
6
- metadata.gz: d4ed9d036f7dae85b3ce2f9c45de64eed8a8da110f0a826baf100ec9c90dc7e7dbaf5c74f89b472eb89ee7d3bdc9e265fee259621d93e21c972776fa3f682cc0
7
- data.tar.gz: aed5fcd7447be757cd2ca641d1d4f6029db11296ac6b4012b4a02047126f27be4aef8d42da700f736c4f70eba2b0aff252a4ccf332fb6c8b88e6a911e3432171
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka (2.0.20)
4
+ karafka (2.0.21)
5
5
  karafka-core (>= 2.0.4, < 3.0.0)
6
6
  rdkafka (>= 0.12)
7
7
  thor (>= 0.20)
@@ -79,4 +79,4 @@ DEPENDENCIES
79
79
  simplecov
80
80
 
81
81
  BUNDLED WITH
82
- 2.3.24
82
+ 2.3.26
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 pauses the partition for as long
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
@@ -3,5 +3,5 @@
3
3
  # Main module namespace
4
4
  module Karafka
5
5
  # Current Karafka version
6
- VERSION = '2.0.20'
6
+ VERSION = '2.0.21'
7
7
  end
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.20
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-24 00:00:00.000000000 Z
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: Framework used to simplify Apache Kafka based Ruby applications development
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: Efficient Kafka processing framework for Ruby and Rails
361
+ summary: Karafka is Ruby and Rails efficient Kafka processing framework.
357
362
  test_files: []
metadata.gz.sig CHANGED
Binary file