Python 的 apscheduler 今天出现
skipped: maximum number of running instances reached (1)
问题产生的原因:
设置了大量的任务,而APScheduler无法同时处理所有任务
解决方法:
调整APScheduler使用的线程池大小来增加并发处理任务的能力
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.executors.pool import ThreadPoolExecutor from jobs.job import deal_jobs # 创建调度器 executor = ThreadPoolExecutor(20) scheduler = BackgroundScheduler(executors={'default': executor}) scheduler.add_job(deal_jobs, 'interval', seconds=20) # 启动调度器 scheduler.start()
合理设置任务的执行时间
如果任务执行时间过长,会出现等待任务完成,而无法处理其他任务
可以将执行时间长的任务分解,分解为多个子任务,并分配到多个调度器中,每个调度器只需处理一部分子任务,这样可以提高整体的任务并发性能
标签:skipped,maximum,number,apscheduler,任务,scheduler,import,reached From: https://www.cnblogs.com/baby123/p/18190311