class MagicPipe::Transports::Multi

Public Class Methods

new(config, metrics) click to toggle source
Calls superclass method MagicPipe::Transports::Base::new
# File lib/magic_pipe/transports/multi.rb, line 6
def initialize(config, metrics)
  super(config, metrics)
  @transports = build_nested_transports
end

Public Instance Methods

submit!(payload, metadata) click to toggle source
# File lib/magic_pipe/transports/multi.rb, line 12
def submit!(payload, metadata)
  @transports.map do |transport|
    begin
      transport.submit!(payload, metadata)
    rescue => e
      log_error(e, transport)
    end
  end
end

Private Instance Methods

build_nested_transports() click to toggle source
# File lib/magic_pipe/transports/multi.rb, line 26
def build_nested_transports
  @config.transport.map do |transport|
    klass = MagicPipe::Transports.lookup(transport)
    klass.new(@config, @metrics)
  end
end
log_error(e, transport) click to toggle source
# File lib/magic_pipe/transports/multi.rb, line 34
def log_error(e, transport)
  @logger.error(
    "[MagicPipe] Transports::Multi, error submitting with %{t} (%{e})." % {
      t: transport.class,
      e: e
    }
  )
end