Python Apscheduler动态调度作业(嵌套)

2024-09-30 22:10:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我们需要在当前作业执行时动态调度多个作业。在

大致情况是:

  • 应该有一个调度程序每天查看一个应用程序表(假设在UTC早上6点)。
  • 查找今天日期时间为resume_dttime的用户
  • 为该用户动态安排作业,并在今天的resume_dttime启动其服务

所以我的代码是:

from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('cron', day_of_week='mon-fri', hour=6)
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__":
  sched.start()
  sched.shutdown(wait=True)

这些查询包括:

  • 这是动态添加作业的好方法吗?
  • 问题是,可能有100多个用户。所以,动态增加100个工作岗位是个好主意?
  • 有没有其他方法可以达到这个目的?

Tags: 用户from作业job动态调度runtimeresume
1条回答
网友
1楼 · 发布于 2024-09-30 22:10:15

apscheduler3.0是专门为高效处理大量调度作业而设计的,因此我相信您使用它的预期方式是有效的。在

相关问题 更多 >