Как APScheduler сохраняет задания в базе данных? (Python)

#python #sqlite #apscheduler

#python #sqlite #apscheduler

Вопрос:

Я пытаюсь выяснить, как выглядит схема базы данных sqlite после сохранения некоторых заданий с помощью расширенного планировщика Python. Мне это нужно, потому что я хочу показать задание в пользовательском интерфейсе. Я попытался написать простой скрипт, который сохраняет задание :

 from pytz import utc

from apscheduler.schedulers.background import BackgroundScheduler

from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from datetime import datetime
import os

from apscheduler.schedulers.blocking import BlockingScheduler

jobstores = {

    'default': SQLAlchemyJobStore(url='sqlite:///test.db')
}
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)


def tick():
    print('Tick! The time is: %s' % datetime.now())



scheduler = BlockingScheduler()
scheduler.add_executor('processpool')
scheduler.add_job(tick, 'interval', seconds=3)
print('Press Ctrl {0} to exit'.format('Break' if os.name == 'nt' else 'C'))

try:
    scheduler.start()
except (KeyboardInterrupt, SystemExit):
    pass
  

Но команда «.fullschema» в терминале показывает мне, что в test.db нет таблицы и данных. Что именно я делаю не так?

Ответ №1:

Вы создаете два планировщика, но запускаете только один с конфигурацией по умолчанию.