class Phobos::Producer::PublicAPI

Public Class Methods

new(host_obj) click to toggle source
# File lib/phobos/producer.rb, line 14
def initialize(host_obj)
  @host_obj = host_obj
end

Public Instance Methods

async_publish(topic:, payload:, key: nil, partition_key: nil, headers: nil) click to toggle source
# File lib/phobos/producer.rb, line 26
def async_publish(topic:, payload:, key: nil, partition_key: nil, headers: nil)
  class_producer.async_publish(topic: topic,
                               payload: payload,
                               key: key,
                               partition_key: partition_key,
                               headers: headers)
end
async_publish_list(messages) click to toggle source
# File lib/phobos/producer.rb, line 44
def async_publish_list(messages)
  class_producer.async_publish_list(messages)
end
publish(topic:, payload:, key: nil, partition_key: nil, headers: nil) click to toggle source
# File lib/phobos/producer.rb, line 18
def publish(topic:, payload:, key: nil, partition_key: nil, headers: nil)
  class_producer.publish(topic: topic,
                         payload: payload,
                         key: key,
                         partition_key: partition_key,
                         headers: headers)
end
publish_list(messages) click to toggle source

@param messages [Array(Hash(:topic, :payload, :key, :headers))]

e.g.: [
  { topic: 'A', payload: 'message-1', key: '1', headers: { foo: 'bar' } },
  { topic: 'B', payload: 'message-2', key: '2', headers: { foo: 'bar' } }
]
# File lib/phobos/producer.rb, line 40
def publish_list(messages)
  class_producer.publish_list(messages)
end

Private Instance Methods

class_producer() click to toggle source
# File lib/phobos/producer.rb, line 50
def class_producer
  @host_obj.class.producer
end