karafka 2.5.5 → 2.5.6
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/CHANGELOG.md +7 -0
- data/LICENSE-COMM +4 -0
- data/README.md +2 -2
- data/certs/expired.txt +2 -0
- data/karafka.gemspec +23 -23
- data/lib/active_job/karafka.rb +2 -2
- data/lib/active_job/queue_adapters/karafka_adapter.rb +5 -5
- data/lib/karafka/active_job/consumer.rb +3 -3
- data/lib/karafka/active_job/current_attributes.rb +4 -4
- data/lib/karafka/active_job/job_options_contract.rb +2 -2
- data/lib/karafka/admin/acl.rb +3 -3
- data/lib/karafka/admin/configs/resource.rb +1 -1
- data/lib/karafka/admin/configs.rb +1 -1
- data/lib/karafka/admin/consumer_groups.rb +8 -8
- data/lib/karafka/admin/contracts/replication.rb +2 -2
- data/lib/karafka/admin/replication.rb +21 -21
- data/lib/karafka/admin/topics.rb +6 -6
- data/lib/karafka/admin.rb +4 -5
- data/lib/karafka/app.rb +3 -3
- data/lib/karafka/base_consumer.rb +34 -30
- data/lib/karafka/cli/base.rb +8 -8
- data/lib/karafka/cli/console.rb +1 -1
- data/lib/karafka/cli/contracts/server.rb +12 -12
- data/lib/karafka/cli/help.rb +2 -2
- data/lib/karafka/cli/info.rb +4 -4
- data/lib/karafka/cli/install.rb +11 -11
- data/lib/karafka/cli/server.rb +6 -6
- data/lib/karafka/cli/swarm.rb +1 -1
- data/lib/karafka/cli/topics/align.rb +4 -4
- data/lib/karafka/cli/topics/base.rb +5 -5
- data/lib/karafka/cli/topics/create.rb +2 -2
- data/lib/karafka/cli/topics/delete.rb +2 -2
- data/lib/karafka/cli/topics/help.rb +5 -1
- data/lib/karafka/cli/topics/plan.rb +16 -16
- data/lib/karafka/cli/topics/repartition.rb +3 -3
- data/lib/karafka/cli/topics.rb +22 -22
- data/lib/karafka/cli.rb +2 -2
- data/lib/karafka/connection/client.rb +17 -17
- data/lib/karafka/connection/listener.rb +6 -6
- data/lib/karafka/connection/mode.rb +1 -1
- data/lib/karafka/connection/proxy.rb +1 -1
- data/lib/karafka/connection/status.rb +2 -2
- data/lib/karafka/constraints.rb +3 -3
- data/lib/karafka/embedded.rb +3 -3
- data/lib/karafka/env.rb +4 -4
- data/lib/karafka/errors.rb +3 -0
- data/lib/karafka/execution_mode.rb +1 -1
- data/lib/karafka/helpers/config_importer.rb +2 -2
- data/lib/karafka/helpers/multi_delegator.rb +1 -1
- data/lib/karafka/instrumentation/assignments_tracker.rb +9 -9
- data/lib/karafka/instrumentation/callbacks/error.rb +5 -5
- data/lib/karafka/instrumentation/callbacks/oauthbearer_token_refresh.rb +4 -4
- data/lib/karafka/instrumentation/callbacks/rebalance.rb +6 -6
- data/lib/karafka/instrumentation/callbacks/statistics.rb +5 -5
- data/lib/karafka/instrumentation/logger.rb +7 -7
- data/lib/karafka/instrumentation/logger_listener.rb +53 -53
- data/lib/karafka/instrumentation/vendors/appsignal/base.rb +1 -1
- data/lib/karafka/instrumentation/vendors/appsignal/client.rb +1 -1
- data/lib/karafka/instrumentation/vendors/appsignal/errors_listener.rb +1 -1
- data/lib/karafka/instrumentation/vendors/appsignal/metrics_listener.rb +36 -36
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +28 -28
- data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +38 -38
- data/lib/karafka/instrumentation/vendors/kubernetes/base_listener.rb +5 -5
- data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +1 -1
- data/lib/karafka/instrumentation/vendors/kubernetes/swarm_liveness_listener.rb +1 -1
- data/lib/karafka/licenser.rb +115 -8
- data/lib/karafka/messages/messages.rb +1 -1
- data/lib/karafka/patches/rdkafka/bindings.rb +2 -2
- data/lib/karafka/pro/active_job/job_options_contract.rb +2 -2
- data/lib/karafka/pro/cleaner/messages/messages.rb +10 -0
- data/lib/karafka/pro/cli/contracts/server.rb +12 -12
- data/lib/karafka/pro/cli/parallel_segments/base.rb +4 -4
- data/lib/karafka/pro/cli/parallel_segments/collapse.rb +5 -5
- data/lib/karafka/pro/cli/parallel_segments/distribute.rb +3 -3
- data/lib/karafka/pro/cli/parallel_segments.rb +7 -7
- data/lib/karafka/pro/cli/topics/health.rb +162 -0
- data/lib/karafka/pro/cli/topics.rb +52 -0
- data/lib/karafka/pro/connection/manager.rb +14 -14
- data/lib/karafka/pro/encryption/contracts/config.rb +2 -2
- data/lib/karafka/pro/encryption/messages/middleware.rb +2 -2
- data/lib/karafka/pro/encryption/messages/parser.rb +2 -2
- data/lib/karafka/pro/encryption/setup/config.rb +2 -2
- data/lib/karafka/pro/iterator/tpl_builder.rb +2 -2
- data/lib/karafka/pro/iterator.rb +1 -1
- data/lib/karafka/pro/loader.rb +2 -1
- data/lib/karafka/pro/processing/adaptive_iterator/consumer.rb +1 -1
- data/lib/karafka/pro/processing/coordinators/virtual_offset_manager.rb +7 -7
- data/lib/karafka/pro/processing/filters/base.rb +1 -1
- data/lib/karafka/pro/processing/filters/delayer.rb +2 -2
- data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +1 -1
- data/lib/karafka/pro/processing/offset_metadata/consumer.rb +1 -1
- data/lib/karafka/pro/processing/parallel_segments/filters/base.rb +6 -6
- data/lib/karafka/pro/processing/partitioner.rb +3 -3
- data/lib/karafka/pro/processing/periodic_job/consumer.rb +6 -5
- data/lib/karafka/pro/processing/piping/consumer.rb +7 -7
- data/lib/karafka/pro/processing/schedulers/base.rb +5 -5
- data/lib/karafka/pro/processing/schedulers/default.rb +5 -5
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb +6 -3
- data/lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb +6 -3
- data/lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb +6 -3
- data/lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb +2 -2
- data/lib/karafka/pro/processing/strategies/default.rb +22 -22
- data/lib/karafka/pro/processing/strategies/dlq/default.rb +7 -7
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb +6 -3
- data/lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb +6 -3
- data/lib/karafka/pro/processing/strategies/ftr/default.rb +2 -2
- data/lib/karafka/pro/processing/strategies/lrj/default.rb +2 -2
- data/lib/karafka/pro/processing/strategies/lrj/ftr.rb +6 -3
- data/lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb +6 -3
- data/lib/karafka/pro/processing/strategies/lrj/mom.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/consumer.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/contracts/config.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/contracts/task.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/dispatcher.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/listener.rb +1 -1
- data/lib/karafka/pro/recurring_tasks/matcher.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/serializer.rb +5 -5
- data/lib/karafka/pro/recurring_tasks/setup/config.rb +3 -3
- data/lib/karafka/pro/recurring_tasks/task.rb +4 -4
- data/lib/karafka/pro/recurring_tasks.rb +4 -4
- data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +2 -2
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/long_running_job/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/multiplexing.rb +5 -5
- data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/offset_metadata/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/offset_metadata.rb +1 -1
- data/lib/karafka/pro/routing/features/parallel_segments/consumer_group.rb +5 -5
- data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +2 -2
- data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +2 -2
- data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +3 -3
- data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/patterns/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/periodic_job/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +7 -7
- data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/scheduled_messages/builder.rb +13 -13
- data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -2
- data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/swarm.rb +1 -1
- data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/virtual_partitions/config.rb +7 -7
- data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -2
- data/lib/karafka/pro/scheduled_messages/consumer.rb +4 -4
- data/lib/karafka/pro/scheduled_messages/contracts/config.rb +2 -2
- data/lib/karafka/pro/scheduled_messages/contracts/message.rb +10 -10
- data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +2 -2
- data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +4 -4
- data/lib/karafka/pro/scheduled_messages/dispatcher.rb +5 -5
- data/lib/karafka/pro/scheduled_messages/proxy.rb +8 -8
- data/lib/karafka/pro/scheduled_messages/schema_validator.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/setup/config.rb +2 -2
- data/lib/karafka/pro/scheduled_messages/state.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/tracker.rb +2 -2
- data/lib/karafka/pro/scheduled_messages.rb +2 -2
- data/lib/karafka/pro/swarm/liveness_listener.rb +2 -2
- data/lib/karafka/process.rb +1 -1
- data/lib/karafka/processing/coordinator.rb +1 -1
- data/lib/karafka/processing/inline_insights/consumer.rb +4 -4
- data/lib/karafka/processing/inline_insights/tracker.rb +6 -6
- data/lib/karafka/processing/jobs/base.rb +6 -4
- data/lib/karafka/processing/schedulers/default.rb +4 -4
- data/lib/karafka/processing/strategies/base.rb +6 -6
- data/lib/karafka/processing/strategies/default.rb +13 -13
- data/lib/karafka/processing/strategies/dlq.rb +1 -1
- data/lib/karafka/processing/worker.rb +5 -5
- data/lib/karafka/railtie.rb +11 -11
- data/lib/karafka/routing/builder.rb +3 -3
- data/lib/karafka/routing/contracts/consumer_group.rb +6 -6
- data/lib/karafka/routing/contracts/routing.rb +2 -2
- data/lib/karafka/routing/contracts/topic.rb +4 -4
- data/lib/karafka/routing/features/active_job/contracts/topic.rb +3 -3
- data/lib/karafka/routing/features/base/expander.rb +4 -4
- data/lib/karafka/routing/features/base.rb +8 -8
- data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +2 -2
- data/lib/karafka/routing/features/declaratives/contracts/topic.rb +2 -2
- data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -2
- data/lib/karafka/routing/features/eofed/contracts/topic.rb +3 -3
- data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -2
- data/lib/karafka/routing/features/inline_insights.rb +7 -7
- data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -2
- data/lib/karafka/routing/subscription_group.rb +9 -9
- data/lib/karafka/runner.rb +3 -3
- data/lib/karafka/server.rb +5 -5
- data/lib/karafka/setup/attributes_map.rb +7 -7
- data/lib/karafka/setup/config.rb +11 -11
- data/lib/karafka/setup/contracts/config.rb +2 -2
- data/lib/karafka/setup/defaults_injector.rb +11 -11
- data/lib/karafka/swarm/manager.rb +6 -6
- data/lib/karafka/swarm/node.rb +7 -7
- data/lib/karafka/swarm/supervisor.rb +6 -6
- data/lib/karafka/swarm.rb +1 -1
- data/lib/karafka/time_trackers/pause.rb +1 -1
- data/lib/karafka/version.rb +1 -1
- data/lib/karafka.rb +36 -36
- metadata +6 -3
data/lib/karafka/swarm/node.rb
CHANGED
|
@@ -100,9 +100,9 @@ module Karafka
|
|
|
100
100
|
|
|
101
101
|
swarm.node = self
|
|
102
102
|
monitor.subscribe(liveness_listener)
|
|
103
|
-
monitor.instrument(
|
|
103
|
+
monitor.instrument("swarm.node.after_fork", caller: self)
|
|
104
104
|
|
|
105
|
-
Karafka::Process.tags.add(:execution_mode,
|
|
105
|
+
Karafka::Process.tags.add(:execution_mode, "mode:swarm")
|
|
106
106
|
Karafka::Process.tags.add(:swarm_nodeid, "node:#{@id}")
|
|
107
107
|
|
|
108
108
|
Server.execution_mode.swarm!
|
|
@@ -118,7 +118,7 @@ module Karafka
|
|
|
118
118
|
# Indicates that this node is doing well
|
|
119
119
|
# @note Child API
|
|
120
120
|
def healthy
|
|
121
|
-
write(
|
|
121
|
+
write("0")
|
|
122
122
|
end
|
|
123
123
|
|
|
124
124
|
# Indicates, that this node has failed
|
|
@@ -127,7 +127,7 @@ module Karafka
|
|
|
127
127
|
# have complex health-checking with reporting.
|
|
128
128
|
# @note Child API
|
|
129
129
|
# @note We convert this to string to normalize the API
|
|
130
|
-
def unhealthy(reason_code =
|
|
130
|
+
def unhealthy(reason_code = "1")
|
|
131
131
|
write(reason_code.to_s)
|
|
132
132
|
end
|
|
133
133
|
|
|
@@ -192,19 +192,19 @@ module Karafka
|
|
|
192
192
|
# Sends sigterm to the node
|
|
193
193
|
# @note Parent API
|
|
194
194
|
def stop
|
|
195
|
-
signal(
|
|
195
|
+
signal("TERM")
|
|
196
196
|
end
|
|
197
197
|
|
|
198
198
|
# Sends sigtstp to the node
|
|
199
199
|
# @note Parent API
|
|
200
200
|
def quiet
|
|
201
|
-
signal(
|
|
201
|
+
signal("TSTP")
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
# Terminates node
|
|
205
205
|
# @note Parent API
|
|
206
206
|
def terminate
|
|
207
|
-
signal(
|
|
207
|
+
signal("KILL")
|
|
208
208
|
end
|
|
209
209
|
|
|
210
210
|
# Sends provided signal to the node
|
|
@@ -66,7 +66,7 @@ module Karafka
|
|
|
66
66
|
process.on_sigquit { stop }
|
|
67
67
|
process.on_sigterm { stop }
|
|
68
68
|
process.on_sigtstp { quiet }
|
|
69
|
-
process.on_sigttin { signal(
|
|
69
|
+
process.on_sigttin { signal("TTIN") }
|
|
70
70
|
# Needed to be registered as we want to unlock on child changes
|
|
71
71
|
process.on_sigchld { nil }
|
|
72
72
|
process.on_any_active { unlock }
|
|
@@ -87,13 +87,13 @@ module Karafka
|
|
|
87
87
|
# If anything went wrong during supervision, signal this and die
|
|
88
88
|
# Supervisor is meant to be thin and not cause any issues. If you encounter this case
|
|
89
89
|
# please report it as it should be considered critical
|
|
90
|
-
rescue
|
|
90
|
+
rescue => e
|
|
91
91
|
monitor.instrument(
|
|
92
|
-
|
|
92
|
+
"error.occurred",
|
|
93
93
|
caller: self,
|
|
94
94
|
error: e,
|
|
95
95
|
manager: manager,
|
|
96
|
-
type:
|
|
96
|
+
type: "swarm.supervisor.error"
|
|
97
97
|
)
|
|
98
98
|
|
|
99
99
|
manager.terminate
|
|
@@ -148,11 +148,11 @@ module Karafka
|
|
|
148
148
|
raise Errors::ForcefulShutdownError
|
|
149
149
|
rescue Errors::ForcefulShutdownError => e
|
|
150
150
|
monitor.instrument(
|
|
151
|
-
|
|
151
|
+
"error.occurred",
|
|
152
152
|
caller: self,
|
|
153
153
|
error: e,
|
|
154
154
|
manager: manager,
|
|
155
|
-
type:
|
|
155
|
+
type: "app.stopping.error"
|
|
156
156
|
)
|
|
157
157
|
|
|
158
158
|
# Run forceful kill
|
data/lib/karafka/swarm.rb
CHANGED
data/lib/karafka/version.rb
CHANGED
data/lib/karafka.rb
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
10
|
-
require
|
|
11
|
-
require
|
|
12
|
-
require
|
|
13
|
-
require
|
|
14
|
-
require
|
|
15
|
-
require
|
|
16
|
-
require
|
|
17
|
-
require
|
|
18
|
-
require
|
|
3
|
+
require "karafka-core"
|
|
4
|
+
require "delegate"
|
|
5
|
+
require "English"
|
|
6
|
+
require "rdkafka"
|
|
7
|
+
require "waterdrop"
|
|
8
|
+
require "json"
|
|
9
|
+
require "forwardable"
|
|
10
|
+
require "fileutils"
|
|
11
|
+
require "openssl"
|
|
12
|
+
require "optparse"
|
|
13
|
+
require "socket"
|
|
14
|
+
require "date"
|
|
15
|
+
require "singleton"
|
|
16
|
+
require "digest"
|
|
17
|
+
require "zeitwerk"
|
|
18
|
+
require "logger"
|
|
19
19
|
|
|
20
20
|
# Karafka framework main namespace
|
|
21
21
|
module Karafka
|
|
@@ -50,7 +50,7 @@ module Karafka
|
|
|
50
50
|
|
|
51
51
|
# @return [Pathname] root path of this gem
|
|
52
52
|
def gem_root
|
|
53
|
-
Pathname.new(File.expand_path(
|
|
53
|
+
Pathname.new(File.expand_path("..", __dir__))
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
# @return [Pathname] Karafka app root path (user application path)
|
|
@@ -58,26 +58,26 @@ module Karafka
|
|
|
58
58
|
return @root if @root
|
|
59
59
|
|
|
60
60
|
# If user points to a different root explicitly, use it
|
|
61
|
-
if ENV[
|
|
62
|
-
@root = Pathname.new(ENV[
|
|
61
|
+
if ENV["KARAFKA_ROOT_DIR"]
|
|
62
|
+
@root = Pathname.new(ENV["KARAFKA_ROOT_DIR"])
|
|
63
63
|
|
|
64
64
|
return @root
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
if defined?(::Bundler)
|
|
67
|
+
@root = if defined?(::Bundler)
|
|
68
68
|
# By default we infer the project root from bundler.
|
|
69
69
|
# We cannot use the BUNDLE_GEMFILE env directly because it may be altered by things like
|
|
70
70
|
# ruby-lsp. Instead we always fallback to the most outer Gemfile. In most of the cases, it
|
|
71
71
|
# won't matter but in case of some automatic setup alterations like ruby-lsp, the location
|
|
72
72
|
# from which the project starts may not match the original Gemfile.
|
|
73
|
-
|
|
73
|
+
Pathname.new(
|
|
74
74
|
File.dirname(
|
|
75
75
|
Bundler.with_unbundled_env { Bundler.default_gemfile }
|
|
76
76
|
)
|
|
77
77
|
)
|
|
78
78
|
else
|
|
79
79
|
# Fallback when Bundler is not available: use current directory
|
|
80
|
-
|
|
80
|
+
Pathname.new(Dir.pwd)
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
@root
|
|
@@ -85,7 +85,7 @@ module Karafka
|
|
|
85
85
|
|
|
86
86
|
# @return [Pathname] path to Karafka gem root core
|
|
87
87
|
def core_root
|
|
88
|
-
Pathname.new(File.expand_path(
|
|
88
|
+
Pathname.new(File.expand_path("karafka", __dir__))
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
# @return [Boolean] true if there is a valid pro token present
|
|
@@ -102,16 +102,16 @@ module Karafka
|
|
|
102
102
|
def rails?
|
|
103
103
|
return @rails if instance_variable_defined?(:@rails)
|
|
104
104
|
|
|
105
|
-
@rails = Object.const_defined?(
|
|
105
|
+
@rails = Object.const_defined?("Rails::Railtie")
|
|
106
106
|
|
|
107
107
|
# If Rails exists we set it immediately based on its presence and return
|
|
108
108
|
return @rails if @rails
|
|
109
109
|
|
|
110
110
|
# If rails is not present and user wants us not to force-load it, we return
|
|
111
|
-
return @rails if ENV[
|
|
111
|
+
return @rails if ENV["KARAFKA_REQUIRE_RAILS"] == "false"
|
|
112
112
|
|
|
113
113
|
# If we should try to require it, we try and if no error, it means its there
|
|
114
|
-
require(
|
|
114
|
+
require("rails")
|
|
115
115
|
|
|
116
116
|
@rails = true
|
|
117
117
|
rescue LoadError
|
|
@@ -128,10 +128,10 @@ module Karafka
|
|
|
128
128
|
# KARAFKA_BOOT_FILE='/home/app_path/app.rb'
|
|
129
129
|
# Karafka.boot_file #=> '/home/app_path/app.rb'
|
|
130
130
|
def boot_file
|
|
131
|
-
boot_file = Pathname.new(ENV[
|
|
131
|
+
boot_file = Pathname.new(ENV["KARAFKA_BOOT_FILE"] || File.join(Karafka.root, "karafka.rb"))
|
|
132
132
|
|
|
133
133
|
return boot_file if boot_file.absolute?
|
|
134
|
-
return boot_file if boot_file.to_s ==
|
|
134
|
+
return boot_file if boot_file.to_s == "false"
|
|
135
135
|
|
|
136
136
|
Pathname.new(
|
|
137
137
|
File.expand_path(
|
|
@@ -158,19 +158,19 @@ end
|
|
|
158
158
|
|
|
159
159
|
loader = Zeitwerk::Loader.for_gem
|
|
160
160
|
# Do not load Rails extensions by default, this will be handled by Railtie if they are needed
|
|
161
|
-
loader.ignore(Karafka.gem_root.join(
|
|
161
|
+
loader.ignore(Karafka.gem_root.join("lib/active_job"))
|
|
162
162
|
# Do not load CurrentAttributes components as they will be loaded if needed
|
|
163
163
|
# @note We have to exclude both the .rb file as well as the whole directory so users can require
|
|
164
164
|
# current attributes only when needed
|
|
165
|
-
loader.ignore(Karafka.gem_root.join(
|
|
166
|
-
loader.ignore(Karafka.gem_root.join(
|
|
165
|
+
loader.ignore(Karafka.gem_root.join("lib/karafka/active_job/current_attributes"))
|
|
166
|
+
loader.ignore(Karafka.gem_root.join("lib/karafka/active_job/current_attributes.rb"))
|
|
167
167
|
# Do not load Railtie. It will load if after everything is ready, so we don't have to load any
|
|
168
168
|
# Karafka components when we require this railtie. Railtie needs to be loaded last.
|
|
169
|
-
loader.ignore(Karafka.gem_root.join(
|
|
169
|
+
loader.ignore(Karafka.gem_root.join("lib/karafka/railtie"))
|
|
170
170
|
# Do not load pro components as they will be loaded if needed and allowed
|
|
171
|
-
loader.ignore(Karafka.core_root.join(
|
|
171
|
+
loader.ignore(Karafka.core_root.join("pro/"))
|
|
172
172
|
# Do not load vendors instrumentation components. Those need to be required manually if needed
|
|
173
|
-
loader.ignore(Karafka.core_root.join(
|
|
173
|
+
loader.ignore(Karafka.core_root.join("instrumentation/vendors"))
|
|
174
174
|
loader.setup
|
|
175
175
|
loader.eager_load
|
|
176
176
|
|
|
@@ -182,12 +182,12 @@ Karafka::Routing::Features::Base.load_all
|
|
|
182
182
|
# to make pro components available in case anyone wants to use them as a base to their own
|
|
183
183
|
# custom components. Otherwise inheritance would not work.
|
|
184
184
|
Karafka::Licenser.detect do
|
|
185
|
-
require
|
|
185
|
+
require "karafka/pro/loader"
|
|
186
186
|
|
|
187
187
|
Karafka::Pro::Loader.require_all
|
|
188
188
|
end
|
|
189
189
|
|
|
190
190
|
# Load railtie after everything else is ready so we know we can rely on it.
|
|
191
|
-
require
|
|
191
|
+
require "karafka/railtie"
|
|
192
192
|
|
|
193
193
|
Karafka::Constraints.verify!
|
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.5.
|
|
4
|
+
version: 2.5.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maciej Mensfeld
|
|
@@ -35,14 +35,14 @@ dependencies:
|
|
|
35
35
|
requirements:
|
|
36
36
|
- - ">="
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
|
-
version: 0.
|
|
38
|
+
version: 0.24.0
|
|
39
39
|
type: :runtime
|
|
40
40
|
prerelease: false
|
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
42
|
requirements:
|
|
43
43
|
- - ">="
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: 0.
|
|
45
|
+
version: 0.24.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: waterdrop
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -95,6 +95,7 @@ files:
|
|
|
95
95
|
- LICENSE-LGPL
|
|
96
96
|
- README.md
|
|
97
97
|
- bin/karafka
|
|
98
|
+
- certs/expired.txt
|
|
98
99
|
- certs/karafka-pro.pem
|
|
99
100
|
- config/locales/errors.yml
|
|
100
101
|
- config/locales/pro_errors.yml
|
|
@@ -216,6 +217,8 @@ files:
|
|
|
216
217
|
- lib/karafka/pro/cli/parallel_segments/base.rb
|
|
217
218
|
- lib/karafka/pro/cli/parallel_segments/collapse.rb
|
|
218
219
|
- lib/karafka/pro/cli/parallel_segments/distribute.rb
|
|
220
|
+
- lib/karafka/pro/cli/topics.rb
|
|
221
|
+
- lib/karafka/pro/cli/topics/health.rb
|
|
219
222
|
- lib/karafka/pro/connection/manager.rb
|
|
220
223
|
- lib/karafka/pro/connection/multiplexing/listener.rb
|
|
221
224
|
- lib/karafka/pro/contracts/base.rb
|