2017-10-18 11 views
0

[Pythonの3.5.2、3.3.1 APScheduler]APSchedulerは

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は非常に多くのスレッドを作成しています誰かが十分なのだろうか?

スレッド7は1.6秒で作成されます。そのタスクは2.1秒で終了します。 新しいタスクは2.6秒で実行されます:すぐにスレッド7を使用するのではなく、スレッド8が作成されますが、タスクはスレッド7で実行され、スレッド8は空のままです...理由はありますか?

スケジューラのスレッドの数は、10

答えて

1

に制限されているAPSchedulerは、標準ライブラリのconcurrent.futures.ThreadPoolExecutorこのことについてちょっと怠惰であるを使用しています。それが理由です。

+0

はい、あなたは正しいです。私はここでそれに関する問題を発見した:https://github.com/agronholm/apscheduler/issues/207 ありがとう –

関連する問題