python apscheduler - 已跳过:已达到最大 运行 实例数
python apscheduler - skipped: maximum number of running instances reached
我正在使用 Python apscheduler(版本 3.0.1)每秒执行一个函数
代码:
scheduler = BackgroundScheduler()
scheduler.add_job(runsync, 'interval', seconds=1)
scheduler.start()
大部分时间都运行良好,但有时我会收到此警告:
WARNING:apscheduler.scheduler:Execution of job "runsync (trigger: interval[0:00:01], next run at: 2015-12-01 11:50:42 UTC)" skipped: maximum number of running instances reached (1)
1.Is 这是执行此方法的正确方法吗?
2.What这个警告是什么意思?无论如何都会影响函数内部任务的执行吗?
3.how 处理这个?
这意味着任务花费的时间超过一秒,默认情况下,给定作业只允许并发执行一次。在不知道任务内容的情况下,我无法告诉您如何处理。
如果您希望同一作业的并发 运行 个实例并避免警告,您可以在调度程序的 add_job()
方法中包含 max_instances
参数。默认值为一。
增加max_instances
如果特定用例允许,只需增加 max_instances
,如下所示。
import apscheduler.schedulers.background
scheduler = apscheduler.schedulers.background.BackgroundScheduler({'apscheduler.job_defaults.max_instances': 2})
共有三种 apscheduler
配置样式。这些在 documentation 中有描述。上面是dictionary/JSON风格,这里是参数风格:
import apscheduler.schedulers.background
scheduler = apscheduler.schedulers.background.BackgroundScheduler(job_defaults={'max_instances': 2})
我很确定我的任务不会超过间隔时间。我刚刚关注了这个 answer instead and switched to apscheduler==2.1.2
as suggested here.
我正在使用 Python apscheduler(版本 3.0.1)每秒执行一个函数
代码:
scheduler = BackgroundScheduler()
scheduler.add_job(runsync, 'interval', seconds=1)
scheduler.start()
大部分时间都运行良好,但有时我会收到此警告:
WARNING:apscheduler.scheduler:Execution of job "runsync (trigger: interval[0:00:01], next run at: 2015-12-01 11:50:42 UTC)" skipped: maximum number of running instances reached (1)
1.Is 这是执行此方法的正确方法吗?
2.What这个警告是什么意思?无论如何都会影响函数内部任务的执行吗?
3.how 处理这个?
这意味着任务花费的时间超过一秒,默认情况下,给定作业只允许并发执行一次。在不知道任务内容的情况下,我无法告诉您如何处理。
如果您希望同一作业的并发 运行 个实例并避免警告,您可以在调度程序的 add_job()
方法中包含 max_instances
参数。默认值为一。
增加max_instances
如果特定用例允许,只需增加 max_instances
,如下所示。
import apscheduler.schedulers.background
scheduler = apscheduler.schedulers.background.BackgroundScheduler({'apscheduler.job_defaults.max_instances': 2})
共有三种 apscheduler
配置样式。这些在 documentation 中有描述。上面是dictionary/JSON风格,这里是参数风格:
import apscheduler.schedulers.background
scheduler = apscheduler.schedulers.background.BackgroundScheduler(job_defaults={'max_instances': 2})
我很确定我的任务不会超过间隔时间。我刚刚关注了这个 answer instead and switched to apscheduler==2.1.2
as suggested here.