class Sync(threading.Thread): def __init__(self, Logger=None): threading.Thread.__init__(self) self.SyncObjectsEnum = Enum() self.Projects = Enum() self.RunClasses = Enum() self.running = True self.logger = Logger def addProject(self, ProjectName): self.Projects[ProjectName] = None def getProjects(self): return self.Projects def addRunClass(self, Name, RunClass): self.RunClasses[Name] = RunClass def getRunClasses(self): return self.RunClasses def addSyncTask(self, ProjectName, Name, Sync): if ProjectName in self.Projects.keys(): SyncObjectsEnum = Enum() SyncObjectsEnum[Name] = Sync self.Projects[ProjectName] = SyncObjectsEnum else: SyncObjectsEnum = Enum() SyncObjectsEnum[Name] = Sync self.Projects[""] = SyncObjectsEnum def removeSyncTask(self, ProjectName): return self.Projects.pop(ProjectName) def run(self): while self.running: time.sleep(1.5) try: for Project in self.Projects: for SyncObject in self.Projects[Project].keys(): self.Projects[Project][SyncObject].run() self.logger.info("Running Object " + SyncObject + "...") except RuntimeError: continue else: if self.logger: self.logger.info("Shutdown Mainthread ...")