У нас есть требование динамически планировать несколько заданий во время выполнения текущего задания.
Примерный сценарий:
Должен быть планировщик для ежедневного просмотра таблицы приложений (предположим, в 6:00 по всемирному координированному времени). Найдите пользователей, у которых сегодняшнее время datetime как возобновление_dttime Динамически запланируйте задание для этого пользователя и запустите его службу в это сегодняшнее возобновление_dttime Итак, мой код:
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def scheduled_job():
"""
"""
liveusers = todays_userslist() #Get users from table with todays resume_dttime
for u in liveusers:
user_job = get_userjob(u.id)
runtime = u.resume_dttime #eg u.resume_dttime is datetime(2015, 12, 13, 16, 30, 5)
sched.add_job(user_job, 'date', run_date=runtime, args=[u.name])
if __name__ == "__main__":
scheduled_job()
sched.start()
sched.shutdown(wait=True)
Код работает хорошо (для одной работы). С несколькими заданиями не проверял, но вообще не останавливается. Я попытался удалить цикл for. Кроме того, мы просмотрели множество запросов на гугл. Но не повезло :( Чтобы выйти, мне каждый раз нужно выходить через CTrl+C