class Freddy::Delivery

Attributes

payload[R]
routing_key[R]
tag[R]

Public Class Methods

new(payload, metadata, routing_key, tag) click to toggle source
# File lib/freddy/delivery.rb, line 5
def initialize(payload, metadata, routing_key, tag)
  @payload = payload
  @metadata = metadata
  @routing_key = routing_key
  @tag = tag
end

Public Instance Methods

build_trace(operation_name, tags: {}, force_follows_from: false) click to toggle source
# File lib/freddy/delivery.rb, line 24
def build_trace(operation_name, tags: {}, force_follows_from: false)
  carrier = TraceCarrier.new(@metadata)
  parent =
    if expecting_response? && !force_follows_from
      OpenTracing.global_tracer.extract(OpenTracing::FORMAT_TEXT_MAP, carrier)
    else
      nil
    end

  # Creating a child span when the message sender is expecting a response.
  # Otherwise creating a new trace because the OpenTracing client does not
  # support FollowsFrom yet.
  OpenTracing.start_span(operation_name, child_of: parent, tags: tags)
end
correlation_id() click to toggle source
# File lib/freddy/delivery.rb, line 12
def correlation_id
  @metadata.correlation_id
end
reply_to() click to toggle source
# File lib/freddy/delivery.rb, line 20
def reply_to
  @metadata.reply_to
end
type() click to toggle source
# File lib/freddy/delivery.rb, line 16
def type
  @metadata.type
end

Private Instance Methods

expecting_response?() click to toggle source
# File lib/freddy/delivery.rb, line 41
def expecting_response?
  type == 'request'
end