【发布时间】:2021-12-29 21:56:15
【问题描述】:
我在 jupyter notebook 上使用 apscheduler 来安排 cron 作业,并且我正在使用 sqlalchemy 作业存储。
每次打开应用程序时,我都必须重新定义变量,并且由于没有物理作业存储文件,因此作业会被重置。
所以我的问题是:如何将 jobs.sqlite 作为物理文件? 什么是适当的技术来定义一个 apscheduler 调度器,这样它就不必每次都重新定义?
import sqlalchemy
import pymongo
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
from apscheduler.triggers.cron import CronTrigger
import logging
logging.basicConfig()
logging.getLogger('apscheduler').setLevel(logging.DEBUG)
jobstores = {
'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite'),
'mongo': MongoDBJobStore()
}
executors = {
'default': ThreadPoolExecutor(20),
'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
'coalesce': False,
'max_instances': 100
}
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone="Asia/Karachi")
scheduler.configure({'apscheduler.daemon': False})
【问题讨论】:
标签: python-3.x file sqlalchemy jupyter-notebook apscheduler