Пример, показанный ниже, получен из 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)