为什么ProcessPoolExecutor会忽略max_workers参数?

时间:2015-12-11 00:57:10

标签: python apscheduler

我希望将apscheduler.executors.pool.ProcessPoolExecutor参数设置为1的max_workers不会并行执行多个作业。

import subprocess

from apscheduler.executors.pool import ProcessPoolExecutor
from apscheduler.schedulers.blocking import BlockingScheduler


def run_job():
    subprocess.check_call('echo start; sleep 3; echo done', shell=True)

scheduler = BlockingScheduler(
        executors={'processpool': ProcessPoolExecutor(max_workers=1)})

for i in range(20):
    scheduler.add_job(run_job)
scheduler.start()                                

然而,实际上最多可以并行执行10个作业。

我是否误解了这个概念,还是这个错误?

1 个答案:

答案 0 :(得分:1)

这不能按预期工作的原因是因为您没有指定要在哪个执行者中运行该作业。

请改为尝试:

'*': false