首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解APScheduler Config

理解APScheduler Config
EN

Stack Overflow用户
提问于 2020-08-04 06:59:23
回答 1查看 681关注 0票数 0

下面所示的示例来自于in https://apscheduler.readthedocs.io/en/stable/userguide.html#configuring-the-scheduler。它演示了如何配置调度程序。但是我不明白配置到底在做什么。

问题

  1. jobstores有两个键,一个使用MongoDB,另一个是SQLite。那么调度程序将使用哪一个呢?

  1. executors也有两个键,一个使用ThreadPoolExecutor,另一个使用ProcessPoolExecutor。它会用哪一个?什么是并行(例如,所有计划的作业) ?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-03-21 19:35:43

默认情况下,

  1. 将使用名为“default”的存储,如果在添加作业时不指定任何存储(通过scheduler.add_job(*args,**kwargs))。对于执行程序,
  2. 也是如此。如果在添加作业时没有显式指定执行程序,则它将使用“默认”执行器。

2.2“并行化的是什么(例如所有计划的作业)?”。是的,但需要指出的是,如果您想运行与CPU绑定的作业,那么最好使用ProcessPoolExecutor。如果您想运行IO绑定作业,那么使用ThreadPoolExecutor。有关更多信息,请查看this question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63241679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档