class Jobler::JobScheduler

Attributes

job[R]

Public Class Methods

create!(args) click to toggle source
# File lib/jobler/job_scheduler.rb, line 4
def self.create!(args)
  scheduler = Jobler::JobScheduler.new(args)
  scheduler.create_job
  scheduler.perform_job_later
  scheduler
end
new(args) click to toggle source
# File lib/jobler/job_scheduler.rb, line 11
def initialize(args)
  @controller = args[:controller]
  @jobler_type = args.fetch(:jobler_type)
  @job_args = args[:job_args]
  @locale = args[:locale]
end

Public Instance Methods

create_job() click to toggle source
# File lib/jobler/job_scheduler.rb, line 18
def create_job
  @job = Jobler::Job.new(
    jobler_type: @jobler_type,
    locale: @locale.presence || I18n.locale,
    parameters: YAML.dump(@job_args)
  )

  if @controller
    @job.assign_attributes(
      host: @controller.request.host,
      port: @controller.request.port,
      protocol: @controller.request.protocol
    )
  end

  @job.save!
end
perform_job_later() click to toggle source
# File lib/jobler/job_scheduler.rb, line 36
def perform_job_later
  Jobler::JobRunner.perform_later(job.id)
end