class MidgetJobs::Job

Attributes

scheduler[R]

Public Class Methods

enqueue(job, at: nil) click to toggle source

@param [ActiveJob::Base] job @param [Time] at

# File lib/midget_jobs/job.rb, line 10
def enqueue(job, at: nil)
  at = Time.at at if at.is_a? Numeric
  MidgetJob.create!(job_id: job.job_id, queue: job.queue_name, serialized: job.serialize, run_at: (at or 1.second.from_now))
end
enqueued_jobs() click to toggle source
# File lib/midget_jobs/job.rb, line 15
def enqueued_jobs
  MidgetJob.all
end
process_notification(hash_data) click to toggle source
# File lib/midget_jobs/job.rb, line 23
def process_notification(hash_data)
  Rails.logger.info "#{self.name}.#{__method__}(#{hash_data})"
  case hash_data[:action]
    when 'INSERT'
      @scheduler.wakeup!
    else
      raise  ArgumentError, "unknown action #{hash_data[:action]}"
  end
end
schedule() click to toggle source
# File lib/midget_jobs/job.rb, line 19
def schedule
  @scheduler = MidgetJobs::Scheduler.new.call
end

Public Instance Methods

run(serialized_job) click to toggle source
# File lib/midget_jobs/job.rb, line 34
def run(serialized_job)
  raise NotImplementedError, "serialized_job: #{serialized_job}"
end