def get_next_run_time(self): """Get the next run time as a localized datetime.""" try: document = (BGJob.objects( next_run_time__ne=None).order_by("next_run_time").fields( next_run_time=1).first()) if document: return utc.localize(document.next_run_time) except DoesNotExist: return None
def _get_jobs(self, conditions): jobs = [] failed_jobs = [] for document in BGJob.objects(**conditions).order_by("next_run_time"): try: jobs.append( db_to_scheduler(document, self._scheduler, self._alias)) except Exception: logger.exception( "Removing job %s, exception occurred while restoring:" % document.id) failed_jobs.append(document) # Remove all the jobs we failed to restore if failed_jobs: for document in failed_jobs: document.delete() return jobs