class Tantot::Strategy::Sidekiq

Public Class Methods

marshal(changes_by_model) click to toggle source
# File lib/tantot/strategy/sidekiq.rb, line 21
def self.marshal(changes_by_model)
  changes_by_model.each.with_object({}) do |(model_class, changes), hash|
    hash[model_class.name] = changes
  end
end
unmarshal(changes_by_model) click to toggle source
# File lib/tantot/strategy/sidekiq.rb, line 27
def self.unmarshal(changes_by_model)
  changes_by_model.each.with_object({}) do |(model_class_name, changes_by_id), model_hash|
    model_hash[model_class_name.constantize] = changes_by_id.each.with_object({}) do |(id, changes), change_hash|
      change_hash[id.to_i] = changes
    end
  end
end

Public Instance Methods

run(agent, changes_by_model) click to toggle source
# File lib/tantot/strategy/sidekiq.rb, line 14
def run(agent, changes_by_model)
  queue = agent.options[:queue] || Tantot.config.sidekiq_queue
  ::Sidekiq::Client.push('class' => Tantot::Strategy::Sidekiq::Worker,
                         'args' => [agent.id, Tantot::Strategy::Sidekiq.marshal(changes_by_model)],
                         'queue' => queue)
end