module Seam::Sidekiq
Constants
- VERSION
Public Class Methods
fire_the_worker_for_the_next_step_of(effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 28 def self.fire_the_worker_for_the_next_step_of effort return unless worker = the_next_worker_for(effort) this_should_be_executed_in_the_future(effort) ? execute_this_in_the_future(worker, effort) : execute_this_now(worker, effort) end
setup()
click to toggle source
# File lib/seam/sidekiq.rb, line 7 def self.setup ::Seam::Worker.class_eval do include ::Sidekiq::Worker def perform effort_id effort = Seam::Effort.find effort_id execute effort ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort end end ::Seam::Flow.class_eval do alias :the_default_start_for :start def start(data = {}) effort = the_default_start_for data ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort effort end end end
Private Class Methods
execute_this_in_the_future(worker, effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 39 def execute_this_in_the_future worker, effort worker.class.perform_in time_until(effort), effort.id end
execute_this_now(worker, effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 43 def execute_this_now worker, effort worker.class.perform_async effort.id end
the_next_worker_for(effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 47 def the_next_worker_for effort Seam::Worker.handler_for effort.next_step end
this_should_be_executed_in_the_future(effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 55 def this_should_be_executed_in_the_future effort effort.next_execute_at > Time.now end
time_until(effort)
click to toggle source
# File lib/seam/sidekiq.rb, line 51 def time_until effort effort.next_execute_at - Time.now end
Public Instance Methods
perform(effort_id)
click to toggle source
# File lib/seam/sidekiq.rb, line 11 def perform effort_id effort = Seam::Effort.find effort_id execute effort ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort end
start(data = {})
click to toggle source
# File lib/seam/sidekiq.rb, line 20 def start(data = {}) effort = the_default_start_for data ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort effort end