Как настроить Apscheduler для повторной работы при выполнении условия - PullRequest
0 голосов
/ 17 апреля 2020

Я хотел бы знать, можно ли повторить попытку выполнения запланированного задания, если оно не выполнено в соответствии с некоторым оцениваемым условием.

Конкретно, мне нужно загружать базу данных каждый день в 6:30, однако иногда этот процесс не может быть завершен по некоторым внешним причинам, например, исходный файл не всегда готов вовремя, поэтому Я хотел бы иметь возможность повторить работу через 15 минут, пока работа не будет успешно завершена.

Вот сводка моего кода, который в конце возвращает параметр Bool, если задание было успешно или нет.

def insert_backup_db():

#code to get data, process and upload
#

return r # r is a bool variable. True if success job else False

if __name__ == "__main__":
    sched = BlockingScheduler(daemon=True)
    sched.add_job(insert_backup_db,trigger='cron',hour='6',minute='30',misfire_grace_time=300)
    try:
        sched.start()
    except (KeyboardInterrupt, SystemExit):
        pass

Как я могу добиться перенесения работы?

...