module SidekiqPipeline

Constants

VERSION

Public Class Methods

execute(params) click to toggle source

For kicking off a pipeline

# File lib/sidekiq_pipeline.rb, line 6
def self.execute(params)
  first_job = params[:pipeline].first

  klass = Object.const_get(first_job[:class])

  klass.perform_async(params)
end

Public Instance Methods

perform(params) click to toggle source
# File lib/sidekiq_pipeline.rb, line 14
def perform(params)
  # params = {
  #   pipeline: [{
  #       class: "Worker1",
  #       params: {...}
  #     },{
  #       class: "Worker2",
  #       params: {...}
  #     },...
  #   ]
  # }

  job = params["pipeline"].shift
  klass = Object.const_get(job["class"])

  klass.new.pipeline_perform(job["params"])

  if !params["pipeline"].empty?
    klass = Object.const_get(params["pipeline"].first["class"])
    klass.perform_async(params)
  end
end