[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)
为什么APScheduler会在一个人足够的时候创建这么多线程?
Thread-7创建时间为1.6秒。它的任务在2.1秒结束。 一个新任务在2.6秒执行:而不是立即使用Thread-7,创建了Thread-8,但是在Thread-7中执行了任务,让线程8空了......这有什么原因吗?
调度程序的线程数限制为10.
答案 0 :(得分:1)
APScheduler使用标准库my_instance
,这有点懒惰。这就是原因。
答案 1 :(得分:0)
要避免此问题,您可以尝试使用 simple-scheduler。它的重量很轻,也达到了这个目的。