Я ожидал, что аргумент apscheduler.executors.pool.ProcessPoolExecutor
с аргументом max_workers
, установленным в 1, не будет выполнять более одного задания параллельно.Почему ProcessPoolExecutor игнорирует аргумент 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()
Однако фактически параллельно выполняется до десяти заданий.
Не понял ли я концепт или это ошибка? .
Вы создали более одного такого исполнителя случайно? Видеть код может помочь. – ShadowRanger
Вам нужно привести более полный пример - один, который я мог бы запустить сам. Во-первых, уверены ли вы, что вы указали правильного исполнителя для запуска? –