Class: Legion::Apollo::Messages::Ingest

Inherits:
Object
  • Object
show all
Includes:
Logging::Helper
Defined in:
lib/legion/apollo/messages/ingest.rb

Overview

Envelope for publishing knowledge ingest requests to the Apollo exchange.

Constant Summary collapse

ROUTING_KEY =
'apollo.ingest'
EXCHANGE =
'apollo'

Instance Method Summary collapse

Instance Method Details

#publish(payload) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/legion/apollo/messages/ingest.rb', line 15

def publish(payload)
  unless defined?(Legion::Transport)
    log.warn 'Apollo::Messages::Ingest publish skipped because Legion::Transport is unavailable'
    return
  end

  exchange = Legion::Transport::Exchange.new(EXCHANGE, type: :topic, auto_delete: false)
  exchange.publish(payload, routing_key: ROUTING_KEY)
  log.info { "Apollo::Messages::Ingest published routing_key=#{ROUTING_KEY} payload_bytes=#{payload.to_s.bytesize}" }
end