【问题标题】:How can I schedule a task in determinated hours?如何在确定的时间安排任务?
【发布时间】:2020-10-26 23:41:33
【问题描述】:

我想在工作日的上午 8 点到晚上 17 点之间每 10 分钟运行一次任务。我正在尝试这样:

cron = BackgroundScheduler(daemon=True, timezone='UTC')
cron.add_job(service.test, trigger='cron',
             day_of_week='mon-fri', hour='7-16', minute=10)
cron.start()

但什么也没发生。我做错了什么?

【问题讨论】:

  • 文档指出“调度程序启动后,您无法再更改其设置。”。我不确定设置是否也指新工作。
  • 另外,现在的 UTC 时间是第 20 小时,所以即使你在启动调度程序之前添加了作业,它现在也不会工作。
  • @Roy2012 它是在调用 start 之前设置的,但我更改了它是否有效。
  • 所以请更改问题中的代码以反映...
  • @keanu 我正在尝试获取巴西的时区

标签: python scheduled-tasks apscheduler


【解决方案1】:

所以,经过大量研究后,我发现问题不在于时区,而在于我不理解代码。

这个:

cron = BackgroundScheduler(daemon=True, timezone=get_localzone())
cron.add_job(service.test, 'cron', day_of_week=(
    'mon-fri'), hour='7-16', minute=10)

意味着在每个工作日的每个小时的第 10 分钟调用我的代码,而不是每 10 分钟调用一次。如果有人想了解更多关于 https://apscheduler.readthedocs.io/en/v2.1.2/cronschedule.html 的信息,这里是 Cron 样式调度的文档。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2012-09-18
    • 2010-12-31
    • 2019-12-21
    • 2021-02-06
    相关资源
    最近更新 更多