#python-3.x #file #sqlalchemy #jupyter-notebook #apscheduler
Вопрос:
Я использую apscheduler в ноутбуке jupyter для планирования заданий 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})
Ответ №1:
Я решил эту проблему.
Вместо того, чтобы делать магазины вакансий=магазины вакансий в последней строке. Вы добавляете еще одну строку:
scheduler.add_jobstore('sqlalchemy', url='sqlite:///jobs.sqlite')