class SidekiqBulkJob::Setter

Public Class Methods

new(opts) click to toggle source
# File lib/sidekiq_bulk_job.rb, line 16
def initialize(opts)
  @opts = opts
end

Public Instance Methods

perform_async(job_class, *args) click to toggle source
# File lib/sidekiq_bulk_job.rb, line 25
def perform_async(job_class, *args)
  options = SidekiqBulkJob::Utils.symbolize_keys(@opts)
  if options[:at].nil? && options[:in].nil?
    payload = {
        job_class_name: job_class.to_s,
        perfrom_args: args,
        queue: options[:queue] || SidekiqBulkJob.queue
      }.select { |_, value| !value.nil? }
    SidekiqBulkJob.process payload
  else
    perform_in(options[:at] || options[:in], job_class, *args)
  end
end
perform_at(interval, job_class, *args)
Alias for: perform_in
perform_in(interval, job_class, *args) click to toggle source

interval must be a timestamp, numeric or something that acts

numeric (like an activesupport time interval).
# File lib/sidekiq_bulk_job.rb, line 41
def perform_in(interval, job_class, *args)
  int = interval.to_f
  now = SidekiqBulkJob.time_now
  ts = (int < 1_000_000_000 ? now + int : int).to_f

  # Optimization to enqueue something now that is scheduled to go out now or in the past
  if ts > now.to_f
    options = SidekiqBulkJob::Utils.symbolize_keys(@opts)
    payload = {
      job_class_name: job_class.to_s,
      at: ts,
      perfrom_args: args,
      queue: options[:queue] || SidekiqBulkJob.queue
    }.select { |_, value| !value.nil? }
    SidekiqBulkJob.process payload
  else
    perform_async(job_class, *args)
  end
end
Also aliased as: perform_at
set(options) click to toggle source
# File lib/sidekiq_bulk_job.rb, line 20
def set(options)
  @opts.merge!(options)
  self
end