【问题标题】:APScheduler needs to be redefined on startupAPScheduler 需要在启动时重新定义
【发布时间】: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


    【解决方案1】:

    我解决了。

    而不是在最后一行执行 jobstores=jobstores。 您添加另一行:

    scheduler.add_jobstore('sqlalchemy', url='sqlite:///jobs.sqlite')
    

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多