APScheduler打开更多主题

时间:2017-10-18 09:54:34

标签: python apscheduler

[Python 3.5.2,APScheduler 3.3.1]

APScheduler启动了许多线程,我想知道原因。

这是我执行的代码(在PyCharm中,我也可以在其中绘制线程图):

from apscheduler.schedulers.background import BackgroundScheduler
import time

def process_to_execute():
    time.sleep(0.5)

scheduler = BackgroundScheduler()
scheduler.add_job(process_to_execute, 'cron', second="*/1")
scheduler.start()

while True:
    time.sleep(1)

线程图是: threads_graph

为什么APScheduler会在一个人足够的时候创建这么多线程?

Thread-7创建时间为1.6秒。它的任务在2.1秒结束。 一个新任务在2.6秒执行:而不是立即使用Thread-7,创建了Thread-8,但是在Thread-7中执行了任务,让线程8空了......这有什么原因吗?

调度程序的线程数限制为10.

2 个答案:

答案 0 :(得分:1)

APScheduler使用标准库my_instance,这有点懒惰。这就是原因。

答案 1 :(得分:0)

要避免此问题,您可以尝试使用 simple-scheduler。它的重量很轻,也达到了这个目的。