__all__ = ('EVENT_SCHEDULER_START', 'EVENT_SCHEDULER_SHUTDOWN', 'EVENT_JOBSTORE_ADDED', 'EVENT_JOBSTORE_REMOVED', 'EVENT_JOBSTORE_JOB_ADDED', 'EVENT_JOBSTORE_JOB_REMOVED', 'EVENT_JOB_EXECUTED', 'EVENT_JOB_ERROR', 'EVENT_JOB_MISSED', 'EVENT_ALL', 'SchedulerEvent', 'JobStoreEvent', 'JobEvent') EVENT_SCHEDULER_START = 1 # The scheduler was started EVENT_SCHEDULER_SHUTDOWN = 2 # The scheduler was shut down EVENT_JOBSTORE_ADDED = 4 # A job store was added to the scheduler EVENT_JOBSTORE_REMOVED = 8 # A job store was removed from the scheduler EVENT_JOBSTORE_JOB_ADDED = 16 # A job was added to a job store EVENT_JOBSTORE_JOB_REMOVED = 32 # A job was removed from a job store EVENT_JOB_EXECUTED = 64 # A job was executed successfully EVENT_JOB_ERROR = 128 # A job raised an exception during execution EVENT_JOB_MISSED = 256 # A job's execution was missed EVENT_ALL = (EVENT_SCHEDULER_START | EVENT_SCHEDULER_SHUTDOWN | EVENT_JOBSTORE_ADDED | EVENT_JOBSTORE_REMOVED | EVENT_JOBSTORE_JOB_ADDED | EVENT_JOBSTORE_JOB_REMOVED | EVENT_JOB_EXECUTED | EVENT_JOB_ERROR | EVENT_JOB_MISSED) class SchedulerEvent(object): """ An event that concerns the scheduler itself. :var code: the type code of this event """ def __init__(self, code): self.code = code class JobStoreEvent(SchedulerEvent): """ An event that concerns job stores. :var alias: the alias of the job store involved :var job: the new job if a job was added """ def __init__(self, code, alias, job=None): SchedulerEvent.__init__(self, code) self.alias = alias if job: self.job = job class JobEvent(SchedulerEvent): """ An event that concerns the execution of individual jobs. :var job: the job instance in question :var scheduled_run_time: the time when the job was scheduled to be run :var retval: the return value of the successfully executed job :var exception: the exception raised by the job :var traceback: the traceback object associated with the exception """ def __init__(self, code, job, scheduled_run_time, retval=None, exception=None, traceback=None): SchedulerEvent.__init__(self, code) self.job = job self.scheduled_run_time = scheduled_run_time self.retval = retval self.exception = exception self.traceback = traceback