karafka 2.3.0 → 2.3.1
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 +4 -3
- data/CHANGELOG.md +3 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +20 -20
- data/README.md +2 -2
- data/lib/karafka/helpers/async.rb +13 -3
- data/lib/karafka/runner.rb +4 -0
- data/lib/karafka/server.rb +2 -3
- data/lib/karafka/templates/karafka.rb.erb +0 -2
- data/lib/karafka/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 9d28565a68d29a1f8f14be1878bf3a1f41611028069586fb4ece1572b8eb72eb
|
|
4
|
+
data.tar.gz: 8c7f6ea1ec67e07ed107c7347d594a26ba923cecc7282c346eb24863e0324412
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 73d43079b8e83babe2f722acdd11a67d6a5c361998ffada9b46b0f28b3ebc9c430d7b28cf56cb2aba808e25c234fffc7b2ee945e9e265160fb7cba6f821fcc70
|
|
7
|
+
data.tar.gz: 465b1088763ddc3ea63e53ef92765ae5719d6d1a83522288976321d1a64d24616b06d6571ce11425fd8a0dbf36d8c595871b92abfc8de8bcecc444181afe5123
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
�QW�,A�՞`z��D��}���������Zt��j��͡$�p�;ܹY���w��� 2�¨�a��z������M�]�q]�o!,\d������G��_e{�.�({S�
|
|
2
|
+
ƅ����Jg3kJ��K6��������k2� �Hc��Ѭ�9JfH���Yj������+!b\�%�h��
|
|
3
|
+
|Z��t\I�,�X���o��
|
|
4
|
+
^K���Vja��������@�9���P@ax߯u�>n�-�@�"JT�aR�?� -S��T�!~�ѿ��y��l�XJ�G�6n���0��j@�h/*̵R�����w�<E��[o~gE�+%m��}Ҥ���N�Գ�D��pi���J��Q���˜Z�X"��I����xK=�q�
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Karafka framework changelog
|
|
2
2
|
|
|
3
|
+
## 2.3.1 (2024-02-08)
|
|
4
|
+
- [Refactor] Ensure that `Karafka::Helpers::Async#async_call` can run from multiple threads.
|
|
5
|
+
|
|
3
6
|
## 2.3.0 (2024-01-26)
|
|
4
7
|
- **[Feature]** Introduce Exactly-Once Semantics within consumers `#transaction` block (Pro)
|
|
5
8
|
- **[Feature]** Provide ability to multiplex subscription groups (Pro)
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
karafka (2.3.
|
|
4
|
+
karafka (2.3.1)
|
|
5
5
|
karafka-core (>= 2.3.0, < 2.4.0)
|
|
6
6
|
waterdrop (>= 2.6.12, < 3.0.0)
|
|
7
7
|
zeitwerk (~> 2.3)
|
|
@@ -27,7 +27,7 @@ GEM
|
|
|
27
27
|
byebug (11.1.3)
|
|
28
28
|
concurrent-ruby (1.2.3)
|
|
29
29
|
connection_pool (2.4.1)
|
|
30
|
-
diff-lcs (1.5.
|
|
30
|
+
diff-lcs (1.5.1)
|
|
31
31
|
docile (1.4.0)
|
|
32
32
|
drb (2.2.0)
|
|
33
33
|
ruby2_keywords
|
|
@@ -41,36 +41,36 @@ GEM
|
|
|
41
41
|
concurrent-ruby (~> 1.0)
|
|
42
42
|
karafka-core (2.3.0)
|
|
43
43
|
karafka-rdkafka (>= 0.14.8, < 0.15.0)
|
|
44
|
-
karafka-rdkafka (0.14.
|
|
44
|
+
karafka-rdkafka (0.14.9)
|
|
45
45
|
ffi (~> 1.15)
|
|
46
46
|
mini_portile2 (~> 2.6)
|
|
47
47
|
rake (> 12)
|
|
48
|
-
karafka-web (0.8.
|
|
48
|
+
karafka-web (0.8.1)
|
|
49
49
|
erubi (~> 1.4)
|
|
50
|
-
karafka (>= 2.3.0
|
|
51
|
-
karafka-core (>= 2.3.0
|
|
50
|
+
karafka (>= 2.3.0, < 2.4.0)
|
|
51
|
+
karafka-core (>= 2.3.0, < 2.4.0)
|
|
52
52
|
roda (~> 3.68, >= 3.69)
|
|
53
53
|
tilt (~> 2.0)
|
|
54
54
|
mini_portile2 (2.8.5)
|
|
55
55
|
minitest (5.21.2)
|
|
56
56
|
mutex_m (0.2.0)
|
|
57
|
-
rack (3.0.
|
|
57
|
+
rack (3.0.9)
|
|
58
58
|
rake (13.1.0)
|
|
59
59
|
roda (3.76.0)
|
|
60
60
|
rack
|
|
61
|
-
rspec (3.
|
|
62
|
-
rspec-core (~> 3.
|
|
63
|
-
rspec-expectations (~> 3.
|
|
64
|
-
rspec-mocks (~> 3.
|
|
65
|
-
rspec-core (3.
|
|
66
|
-
rspec-support (~> 3.
|
|
67
|
-
rspec-expectations (3.
|
|
61
|
+
rspec (3.13.0)
|
|
62
|
+
rspec-core (~> 3.13.0)
|
|
63
|
+
rspec-expectations (~> 3.13.0)
|
|
64
|
+
rspec-mocks (~> 3.13.0)
|
|
65
|
+
rspec-core (3.13.0)
|
|
66
|
+
rspec-support (~> 3.13.0)
|
|
67
|
+
rspec-expectations (3.13.0)
|
|
68
68
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
69
|
-
rspec-support (~> 3.
|
|
70
|
-
rspec-mocks (3.
|
|
69
|
+
rspec-support (~> 3.13.0)
|
|
70
|
+
rspec-mocks (3.13.0)
|
|
71
71
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
72
|
-
rspec-support (~> 3.
|
|
73
|
-
rspec-support (3.
|
|
72
|
+
rspec-support (~> 3.13.0)
|
|
73
|
+
rspec-support (3.13.0)
|
|
74
74
|
ruby2_keywords (0.0.5)
|
|
75
75
|
simplecov (0.22.0)
|
|
76
76
|
docile (~> 1.1)
|
|
@@ -81,7 +81,7 @@ GEM
|
|
|
81
81
|
tilt (2.3.0)
|
|
82
82
|
tzinfo (2.0.6)
|
|
83
83
|
concurrent-ruby (~> 1.0)
|
|
84
|
-
waterdrop (2.6.
|
|
84
|
+
waterdrop (2.6.13)
|
|
85
85
|
karafka-core (>= 2.2.3, < 3.0.0)
|
|
86
86
|
zeitwerk (~> 2.3)
|
|
87
87
|
zeitwerk (2.6.12)
|
|
@@ -95,7 +95,7 @@ DEPENDENCIES
|
|
|
95
95
|
byebug
|
|
96
96
|
factory_bot
|
|
97
97
|
karafka!
|
|
98
|
-
karafka-web (>= 0.8.0
|
|
98
|
+
karafka-web (>= 0.8.0)
|
|
99
99
|
rspec
|
|
100
100
|
simplecov
|
|
101
101
|
|
data/README.md
CHANGED
|
@@ -57,8 +57,8 @@ We also maintain many [integration specs](https://github.com/karafka/karafka/tre
|
|
|
57
57
|
1. Add and install Karafka:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
# Make sure to install Karafka 2.
|
|
61
|
-
bundle add karafka --version ">= 2.
|
|
60
|
+
# Make sure to install Karafka 2.3
|
|
61
|
+
bundle add karafka --version ">= 2.3.0"
|
|
62
62
|
|
|
63
63
|
bundle exec karafka install
|
|
64
64
|
```
|
|
@@ -8,6 +8,12 @@ module Karafka
|
|
|
8
8
|
# @note Thread running code needs to manage it's own exceptions. If they leak out, they will
|
|
9
9
|
# abort thread on exception.
|
|
10
10
|
module Async
|
|
11
|
+
# Mutex used to ensure we do not create multiple threads if we decide to run this
|
|
12
|
+
# in parallel on multiple threads
|
|
13
|
+
MUTEX = Mutex.new
|
|
14
|
+
|
|
15
|
+
private_constant :MUTEX
|
|
16
|
+
|
|
11
17
|
class << self
|
|
12
18
|
# Adds forwardable to redirect thread-based control methods to the underlying thread that
|
|
13
19
|
# runs the async operations
|
|
@@ -22,10 +28,14 @@ module Karafka
|
|
|
22
28
|
|
|
23
29
|
# Runs the `#call` method in a new thread
|
|
24
30
|
def async_call
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
MUTEX.synchronize do
|
|
32
|
+
return if @thread&.alive?
|
|
33
|
+
|
|
34
|
+
@thread = Thread.new do
|
|
35
|
+
Thread.current.abort_on_exception = true
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
call
|
|
38
|
+
end
|
|
29
39
|
end
|
|
30
40
|
end
|
|
31
41
|
end
|
data/lib/karafka/runner.rb
CHANGED
|
@@ -18,6 +18,10 @@ module Karafka
|
|
|
18
18
|
workers = Processing::WorkersBatch.new(jobs_queue)
|
|
19
19
|
listeners = Connection::ListenersBatch.new(jobs_queue)
|
|
20
20
|
|
|
21
|
+
# We mark it prior to delegating to the manager as manager will have to start at least one
|
|
22
|
+
# connection to Kafka, hence running
|
|
23
|
+
Karafka::App.run!
|
|
24
|
+
|
|
21
25
|
# Register all the listeners so they can be started and managed
|
|
22
26
|
@manager.register(listeners)
|
|
23
27
|
|
data/lib/karafka/server.rb
CHANGED
|
@@ -61,10 +61,9 @@ module Karafka
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
# Starts Karafka with a supervision
|
|
64
|
-
# @note We don't need to sleep because Karafka::
|
|
65
|
-
#
|
|
64
|
+
# @note We don't need to sleep because Karafka::Runner is locking and waiting to finish loop
|
|
65
|
+
# (and it won't happen until we explicitly want to stop)
|
|
66
66
|
def start
|
|
67
|
-
Karafka::App.run!
|
|
68
67
|
Karafka::Runner.new.call
|
|
69
68
|
end
|
|
70
69
|
|
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.3.
|
|
4
|
+
version: 2.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maciej Mensfeld
|
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
|
35
35
|
AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
|
|
36
36
|
msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
|
|
37
37
|
-----END CERTIFICATE-----
|
|
38
|
-
date: 2024-
|
|
38
|
+
date: 2024-02-09 00:00:00.000000000 Z
|
|
39
39
|
dependencies:
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: karafka-core
|
metadata.gz.sig
CHANGED
|
Binary file
|