当有太多的工作在运行时,python apscheduler不一致

时间:2017-10-23 07:22:18

标签: python apscheduler

我正在使用一个使用python apscheduler.scheduler的调度程序,而在我的项目中,有太多的作业在运行,但是机器负载不是太高,在完成文档之后,我来到解决方案那里,我不得不增加线程的大小,但我不知道,如何增加线程 我的syntex:

scheduler.add_interval_job(triggerTask, interval_time, args=[], misfire_grace_time = None)

scheduler.add_cron_job(triggerTask, interval_time, args=[], misfire_grace_time = None)

1 个答案:

答案 0 :(得分:4)

由于您要运行90个任务,您可能需要增加线程数,如果它们对计算敏感,您还应该使用ProcessPoolExecutor

from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from apscheduler.schedulers.background import BackgroundScheduler

executors = {
    'default': ThreadPoolExecutor(90),   # max threads: 90
    'processpool': ProcessPoolExecutor(20)  # max processes 20
}
scheduler = BackgroundScheduler(executors=executors) 

scheduler将使用default执行者默认值,您可以通过scheduler.add_interval_job(triggerTask, interval_time, executor="<executor's name>")指定执行者。