def __init__(self): self.h_j = DoubleDict() # root_job initializing self.root_job = Job(self.root_runner, "Root", "Parent of all jobs") h = Handler() self.h_j.set_obj2(h, self.root_job) self.h_j.set_obj1(self.root_job, h)
class Scheduler: def __init__(self): self.h_j = DoubleDict() # root_job initializing self.root_job = Job(self.root_runner, "Root", "Parent of all jobs") h = Handler() self.h_j.set_obj2(h, self.root_job) self.h_j.set_obj1(self.root_job, h) def add_job(self, runner, name = "Nameless", desc = "NoDesc", \ parent = None, exc_handler = None): try: if parent is None: parent = self.h_j.obj1_lookup(self.root_job) j = Job(runner, name, desc, exc_handler) h = Handler() # Set the dict { Handlers : Jobs } self.h_j.set_obj2(h, j) # Set the dict { Jobs : Handlers } self.h_j.set_obj1(j, h) # Set to the parent the 'j' Job as a child parent_job = self.h_j.obj2_lookup(parent) parent_job.sched([j]) except ScriptException as exc: print exc # Return the handler to the caller return h def run(self): try: self.root_job(self.h_j) except JobException as exc: print exc except ScriptException as exc: print exc except RsException as exc: print exc def set_regitem(self, handler, value): j = self.h_j.obj2_lookup(handler) j.set_regitem(j, value) def get_regitem(self, handler): j = self.h_j.obj2_lookup(handler) j.get_regitem(j.id) def root_runner(self): msg("Root job executed")