python apscheduler - 跳过:达到的最大运行实例数

ash*_*hen 13 python cron scheduler apscheduler

我正在使用Python apscheduler(版本3.0.1)每秒执行一个函数

代码:

scheduler = BackgroundScheduler()
scheduler.add_job(runsync, 'interval', seconds=1)
scheduler.start()
Run Code Online (Sandbox Code Playgroud)

它大部分时间都很好,但有时我会收到这个警告:

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)
Run Code Online (Sandbox Code Playgroud)

1.这是执行此方法的正确方法吗?

这个警告意味着什么?它是否会影响函数内部的任务执行?

3.如何处理这个?

Ser*_*ndt 11

增加 max_instances

如果特定用例允许,只需max_instances按如下所示增加即可。

import apscheduler.schedulers.blocking

scheduler = apscheduler.schedulers.blocking.BackgroundScheduler('apscheduler.job_defaults.max_instances': '2')
Run Code Online (Sandbox Code Playgroud)

共有三种apscheduler配置样式。这些在文档中进行了描述。


Ale*_*olm 10

这意味着任务花费的时间超过一秒,默认情况下,给定作业只允许一次并发执行.我不知道如何在不知道任务是什么的情况下处理这个问题.

  • 由于此过程需要超过一秒钟,因此您将会看到很多警告.你不需要做任何事情. (3认同)

Jor*_*uis 8

如果您希望同时运行同一作业的实例并避免出现警告,您可以max_instances在调度程序的add_job()方法中包含该参数。默认值为 1。


归档时间:

查看次数:

11288 次

最近记录:

7 年,1 月 前