2017-10-18 30 views
0

[파이썬 3.5.2, APScheduler 3.3.1]는 APScheduler는 더 많은 스레드

APScheduler 스레드의 수를 시작하고 난 이유를 알고 싶습니다 열립니다.

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) 

스레드 그래프는 다음과 같습니다 :

(나는 또한 스레드를 그래프로 수 PyCharm에서) 내가 실행하고있어 코드입니다 threads_graph

왜 APScheduler 너무 많은 스레드를 생성한다 언제 충분하니?

스레드 7은 1.6 초에 생성됩니다. 그 작업은 2.1 초에 완료됩니다. 새로운 작업이 2.6 초에 실행 됨 : 즉시 Thread-7을 사용하는 대신 Thread-8이 생성되지만 Thread-7에서 작업이 실행되어 Thread-8이 비어있게됩니다 ... 이유가 있습니까? 스케줄러의 스레드의

수는 APScheduler 사용 10

답변

1

로 제한됩니다 표준 라이브러리의 이것에 대해 좀 게으른 concurrent.futures.ThreadPoolExecutor. 그래서 이유가 있습니다.

+0

네, 맞습니다. 여기에서 문제를 발견했습니다. https://github.com/agronholm/apscheduler/issues/207 감사합니다. –