【发布时间】:2015-12-22 00:28:02
【问题描述】:
我预计将 max_workers 参数设置为 1 的 apscheduler.executors.pool.ProcessPoolExecutor 不会并行执行多个作业。
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()
但实际上最多可以并行执行十个作业。
我误解了这个概念还是这是一个错误?
【问题讨论】:
-
您是否偶然创建了多个这样的执行程序?查看代码可能会有所帮助。
-
你需要举一个更完整的例子——一个我可以自己运行的例子。一方面,您确定要指定正确的执行程序来运行吗?
标签: python apscheduler