class Condor::Queue
Public Class Methods
[](job_id)
click to toggle source
# File lib/condor-job/queue.rb, line 16 def self.[](job_id) instance[job_id] end
load(force = false)
click to toggle source
# File lib/condor-job/queue.rb, line 12 def self.load(force = false) instance.load(force) end
new()
click to toggle source
# File lib/condor-job/queue.rb, line 24 def initialize load end
Public Instance Methods
[](job_id)
click to toggle source
# File lib/condor-job/queue.rb, line 20 def [](job_id) @queue.detect{|job| job_id == job.global_job_id.split('#')[1]} end
load(force = false)
click to toggle source
# File lib/condor-job/queue.rb, line 28 def load(force = false) @queue = nil if force @queue ||= begin queue = [] data = `condor_q -global -xml 2>&1` n_retries = 0 while data.include?("condor_collector") # retry! data = `condor_q -global -xml 2>&1` sleep rand (n_retries += 1) < 10 or raise "Could not retrieve the queue!" end xml = Nokogiri::XML("<condor>#{data}</condor>") xml.root.css("c").each do |e| job = {} e.css("a").each do |ee| key = ee.attributes["n"].to_s if ee.children.first val = ee.children.first.text job[key.underscore] = val end end queue << QueueEntry.new(job) end @queue = queue end @queue end