class RubyEventStore::Outbox::SidekiqProducer

Attributes

repository[R]

Public Instance Methods

call(klass, args) click to toggle source
# File lib/ruby_event_store/outbox/sidekiq_producer.rb, line 9
def call(klass, args)
  sidekiq_client = Sidekiq::Client.new(Sidekiq.redis_pool)
  item = {
    'class' => klass,
    'args' => args,
  }
  normalized_item = sidekiq_client.__send__(:normalize_item, item)
  payload = sidekiq_client.__send__(:process_single, normalized_item.fetch('class'), normalized_item)
  if payload
    Repository::Record.create!(
      format: SIDEKIQ5_FORMAT,
      split_key: payload.fetch('queue'),
      payload: payload.to_json
    )
  end
end