class Paradeiser::Scheduler

Public Class Methods

add(command, minutes) click to toggle source
# File lib/paradeiser/models/scheduler.rb, line 19
def add(command, minutes)
  _, err = exec("echo #{BIN_PAR} #{command} | #{at} -q #{queue} now + #{minutes} minutes")
  id = parse_add(err.chomp)
  Job.new(id)
end
clear() click to toggle source
# File lib/paradeiser/models/scheduler.rb, line 25
def clear
  if list.any? # On Linux, at must not be called with an empty job list.
    job_ids = list.map{|j| j.id}.join(' ')
    exec("#{at} -q #{queue} -r #{job_ids}")
  end
end
list() click to toggle source
# File lib/paradeiser/models/scheduler.rb, line 8
def list
  out, _ = exec("#{at} -l -q #{queue}")

  out.lines.map do |line|
    id = parse_list(line)
    Job.new(id)
  end.select do |job|
    job.ours?
  end
end

Private Class Methods

parse_add(line) click to toggle source
# File lib/paradeiser/models/scheduler.rb, line 38
def parse_add(line)
  line.match(/^job (?<job>\d+)/)[:job]
end
parse_list(line) click to toggle source
# File lib/paradeiser/models/scheduler.rb, line 34
def parse_list(line)
  line[/^(\d+)/]
end