【发布时间】:2018-09-28 12:44:34
【问题描述】:
我想使用 APScheduler 和 cron format 安排和运行作业。
from apscheduler.schedulers.background import BackgroundScheduler
def test_func():
print("Test job func")
scheduler = BackgroundScheduler()
today_str = datetime.today().strftime('%Y-%m-%d')
today_with_time = datetime.strptime(today_str + " " + "12:07:00", "%Y-%m-%d %H:%M:%S")
scheduler.add_job(
test_func,
"cron",
id="test",
name="test",
day_of_week="2",
hour=today_with_time.hour,
minute=today_with_time.minute,
replace_existing=False)
假设我这样做了两次,使用了两个不同的作业 ID。有两个作业,设置为同时运行。对于一项工作,它按预期运行一次。有两个作业,它运行 4 次。 DateTrigger 等其他触发器也是如此。
请注意,这是在 Flask 应用程序中设置的。通常,应用程序会调用另一个 API 来获取作业,然后逐个调度它们。
编辑:我的实际应用同时获取 3 个作业并安排它们。当我获取 1 个作业而不是 3 个作业时,该错误不会发生。当我有 3 个工作时,该功能运行 9 次。对于 1 个作业,它会运行一次。
【问题讨论】:
标签: python cron apscheduler