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

标签 python cron scheduled-tasks apscheduler

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

大概的场景是:

  • 应该有一个调度程序每天查看应用程序表(假设在 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 个作业是个好主意吗?
  • 有没有其他方法可以实现这一目标?
  • 最佳答案

    APScheduler 3.0 专为高效处理大量预定作业而设计,因此我相信您使用它的预期方式是有效的。

    关于Python Apscheduler - 动态调度作业(嵌套),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34218760/

    相关文章:

    java - 如何在 Playframework 2.5 上启动并定期调用函数

    java - 带有 @Scheduled 注释的方法在 Spring Boot 应用程序中不起作用

    python - 标准拟合产生不正确的拟合

    python - 从异常中获取好的字符串的正确方法

    php - 保证作业执行的最佳方式

    python - 如何使用 Google App Engine 运行 Selenium 测试?

    javascript - 如何在 Node js中设置 Node 计划作业,使其在服务器重新启动后不会销毁

    python - 在 Celery 中控制和查询任务

    python - Django Allowed_Hosts 错误。

    linux - echo $variable 在 cron 中不起作用