eh_messaging 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f0602e56bb0054195d21d3ef88d5e9a784d7bd8462a4c0021e87c675b13687f
4
- data.tar.gz: 6a2d3936b301d919f68b36043cb68681291e1e955b46bb7cb39b10c4ebc9acdb
3
+ metadata.gz: 5b014b916ade48ab426c27229e4d7fe03886583d451ff0eaa0b783bb8af6e6c9
4
+ data.tar.gz: 83e893f62b4fb28899a3ca31a72c86ea462c3ffe92638ce4ed0f666712ac6191
5
5
  SHA512:
6
- metadata.gz: a6dd61080c1409691c49d0d38384041b54fbdf851037b82a1c54deabfc6fea9c4f046f2895c770ae715ce9b2b39fad6ba6c36136169733278a7c2d78dd43d4f8
7
- data.tar.gz: dba29ccd76b533621e61c18be2190cdc2a7bf954549eaaec04d02149ac644f136a5fe3fabd77d7e71feb3684a10cf17cfdadc35869927854feb3e8c98f056b5c
6
+ metadata.gz: 5df4477c14e624a2fdedbbd36adaa7381443f6b17ee631773478f48d19cbdba5bbe3b0ed292891b6191b16ba6e23d49510a6340b9f76cb85cc420737bd8c5fb0
7
+ data.tar.gz: 1a8d11432d5aec44365148fddd916179dab4edc89c5db0a665068df26568043aecc0ef1289cb2e667973e0214dc831f01e07c0d8d33323dc5a6b494dd974880d
@@ -67,6 +67,27 @@ module EhMessaging
67
67
  config
68
68
  end
69
69
 
70
+ def broker_name_for_topic(topic, side:, fallback: :default)
71
+ config = @topics[topic]
72
+ return fallback unless config
73
+ return fallback if side && config[:side] != :both && config[:side] != side
74
+
75
+ config[:broker] || fallback
76
+ end
77
+
78
+ def consume_broker_name(handler, mode: :normal, fallback: :default)
79
+ case mode
80
+ when :recovery
81
+ return handler.recovery_broker if handler.respond_to?(:recovery_broker)
82
+ return handler.broker if handler.respond_to?(:broker)
83
+ when :dlt
84
+ return handler.dead_letter_broker if handler.respond_to?(:dead_letter_broker)
85
+ else
86
+ return handler.broker if handler.respond_to?(:broker)
87
+ end
88
+ broker_name_for_topic(handler.topic, side: :consume, fallback: fallback)
89
+ end
90
+
70
91
  def topic_config(name, side: nil)
71
92
  config = @topics[name]
72
93
  return broker_config if config.nil?
@@ -9,7 +9,7 @@ module EhMessaging
9
9
  def route(handler, envelope, error)
10
10
  publisher = @producer || Publisher.new(@configuration)
11
11
  owns_publisher = @producer.nil?
12
- broker = handler.respond_to?(:dead_letter_broker) ? handler.dead_letter_broker : :default
12
+ broker = @configuration.consume_broker_name(handler, mode: :dlt)
13
13
  topic = Topics.dead_letter(handler.topic, envelope.consumer_group)
14
14
  return @logger.warn("EhMessaging: DLT topic unavailable: #{topic}") unless publisher.topic_exists?(topic, broker: broker)
15
15
 
@@ -157,11 +157,7 @@ module EhMessaging
157
157
  end
158
158
 
159
159
  def build_consumer(handler, mode, topic, group)
160
- broker_name = if mode == :recovery && handler.respond_to?(:recovery_broker)
161
- handler.recovery_broker
162
- else
163
- handler.respond_to?(:broker) ? handler.broker : :default
164
- end
160
+ broker_name = @configuration.consume_broker_name(handler, mode: mode)
165
161
  connection = @configuration.broker_config(broker_name)
166
162
  if @consumer_factory
167
163
  @consumer_factory.call(handler, mode, topic, group, connection)
@@ -227,10 +223,10 @@ module EhMessaging
227
223
  return consumer.topic_exists?(topic)
228
224
  end
229
225
 
230
- broker_method = (mode == :dlt) ? :dead_letter_broker : :recovery_broker
231
- broker = handler.respond_to?(broker_method) ? handler.public_send(broker_method) : :default
232
- connection = @configuration.broker_config(broker)
233
- consumer ||= build_consumer(handler, mode, topic, (mode == :normal) ? handler.group : Topics.recovery_group(handler.group))
226
+ group = (mode == :normal) ? handler.group : Topics.recovery_group(handler.group)
227
+ broker_name = @configuration.consume_broker_name(handler, mode: mode)
228
+ connection = @configuration.broker_config(broker_name)
229
+ consumer ||= build_consumer(handler, mode, topic, group)
234
230
  metadata = if consumer.respond_to?(:metadata)
235
231
  consumer.metadata(topic)
236
232
  else
@@ -38,8 +38,8 @@ module EhMessaging
38
38
  return if operation_id.to_s.empty? || parent_id.to_s.empty?
39
39
 
40
40
  span_context = OpenTelemetry::Trace::SpanContext.new(
41
- trace_id: operation_id.to_s.delete("-").rjust(32, "0"),
42
- span_id: parent_id.to_s.delete("-").rjust(16, "0"),
41
+ trace_id: [operation_id.to_s.delete("-").rjust(32, "0")].pack("H*"),
42
+ span_id: [parent_id.to_s.delete("-").rjust(16, "0")].pack("H*"),
43
43
  trace_flags: OpenTelemetry::Trace::TraceFlags::SAMPLED,
44
44
  remote: true
45
45
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EhMessaging
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eh_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego E