Class: Tantot::Strategy::Sidekiq
- Inherits:
-
Object
- Object
- Tantot::Strategy::Sidekiq
- Defined in:
- lib/tantot/strategy/sidekiq.rb
Defined Under Namespace
Classes: Worker
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.marshal(changes_by_model) ⇒ Object
21 22 23 24 25 |
# 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) ⇒ Object
27 28 29 30 31 32 33 |
# 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 |
Instance Method Details
#run(agent, changes_by_model) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/tantot/strategy/sidekiq.rb', line 14 def run(agent, changes_by_model) queue = agent.[: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 |