下面所示的示例来自于in https://apscheduler.readthedocs.io/en/stable/userguide.html#configuring-the-scheduler。它演示了如何配置调度程序。但是我不明白配置到底在做什么。
问题
jobstores有两个键,一个使用MongoDB,另一个是SQLite。那么调度程序将使用哪一个呢?executors也有两个键,一个使用ThreadPoolExecutor,另一个使用ProcessPoolExecutor。它会用哪一个?什么是并行(例如,所有计划的作业) ?from pytz import utc
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.mongodb import MongoDBJobStore
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
jobstores = {
'mongo': MongoDBJobStore(),
'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}
executors = {
'default': ThreadPoolExecutor(20),
'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
'coalesce': False,
'max_instances': 3
}
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone=utc)发布于 2021-03-21 19:35:43
默认情况下,
2.2“并行化的是什么(例如所有计划的作业)?”。是的,但需要指出的是,如果您想运行与CPU绑定的作业,那么最好使用ProcessPoolExecutor。如果您想运行IO绑定作业,那么使用ThreadPoolExecutor。有关更多信息,请查看this question
https://stackoverflow.com/questions/63241679
复制相似问题