async def resume(self): if self.state == stateStopped: schedulerLogger.error("Scheduler not running.") raise RuntimeError("Scheduler not running.") elif self.state == statePaused: self.state = stateRunning tornadoScheduler.__ioLoop.add_callback(self.__wakeup) schedulerLogger.info("Resumed scheduler job processing.")
def createTrigger(triggerName, triggerArgs): if triggerName == "date": return dateTrigger(**triggerArgs) elif triggerName == "interval": return intervalTrigger(**triggerArgs) else: schedulerLogger.error( "Unsupported trigger type {}".format(triggerName)) raise TypeError("Unsupported trigger type {}".format(triggerName))
async def shutdown(self): if self.state == stateStopped: schedulerLogger.error("Scheduler not running.") raise RuntimeError("Scheduler not running.") if self.__timeout is not None: tornadoScheduler.__ioLoop.remove_timeout(self.__timeout) self.__timeout = None self.state = stateStopped schedulerLogger.info("Scheduler has been shutdown.")
async def pause(self): if self.state == stateStopped: schedulerLogger.error("Scheduler not running.") raise RuntimeError("Scheduler not running.") elif self.state == stateRunning: if self.__timeout is not None: tornadoScheduler.__ioLoop.remove_timeout(self.__timeout) self.__timeout = None self.state = statePaused schedulerLogger.info("Paused scheduler job processing.")
def convertToUtctime(input, utc): if input is None: return elif isinstance(input, datetime): return datetime - timedelta(hours=utc) elif isinstance(input, str): return datetime.strptime(input, "%Y-%m-%d %H:%M:%S") - timedelta(hours=utc) else: schedulerLogger.error("Unsupported type for {}".format( input.__class__.__name__)) raise TypeError("Unsupported type for {}".format( input.__class__.__name__))
def start(self, paused=False): if self.state != stateStopped: schedulerLogger.error("Scheduler already running.") raise RuntimeError("Scheduler already running.") for jobStoreName in self.jobStoreNames: self.__jobStores[jobStoreName].start() for job, jobStoreName in self.__pendingJobs: self.__jobStores[jobStoreName].syncAddJob(job) del self.__pendingJobs[:] self.state = statePaused if paused else stateRunning schedulerLogger.info("Scheduler started.") if not paused: tornadoScheduler.__ioLoop.add_callback(self.__wakeup)