You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Создать новый объкет щедулера как BlockingScheduler(), импортнуть его в cli и запустить вместо текущего класса щедулера (так как щедулер блокирующий, после вызова start() весь остальной поток остановится и следующие функции выполнены не будут, это нормально). Сделать это лучше где-то в папке worker в отдельном файле.
Настроить SQLAlchemyJobStore для хранения тасок, которые нужно запускать. Используй metadata, тогда новая таблица сгенерируется в алембике. Используй engine, тогда будешь использовать то же подключение, что и нужно для обычной работы (зачем их плодить, правда?). Импортни щедулер в файле конфигурации алембика, чтобы тот почувствовал какую миграцию нужно сделать. https://apscheduler.readthedocs.io/en/3.x/modules/jobstores/sqlalchemy.html
Создай джобу, которая будет раз в минуту проверять обновления. Лучше создать ее где-то в отдельном файле, который будет внутри папки worker. Эта джоба должна будет проверять отличие запланированных фетчеров и активных. Эту функцию можно импортнуть в тот файл, где создан щедулер, и подключить через add_job. Похоже на fastapi и его роутеры, правда?)
Соответственно нужно будет еще 2 функции на создание и удаление этих фетчеров из списка запланированных тасок. Пока фетчер пусть будет пустой функцией в отдельном файле.
Создай функцию fetch, которая узнает что за тип фэтча ей нужно сделать и вызывает функцию типа фэтча. Кажется, для этого нужно будет сходить в БД или переписать функцию для щедулинга так, чтобы изначально планировала нужный вид фетча.
Функция фетча должна создавать новую запись в БД метрик, эту логику можно оставить прямо в функции фетч, не вынося отдельно.
Функция фетча должна отправлять алерт. Эту логику лучше вынести в отдельную функцию.
The text was updated successfully, but these errors were encountered:
#рефакторинг №2
https://apscheduler.readthedocs.io/en/3.x/userguide.html
Создать новый объкет щедулера как BlockingScheduler(), импортнуть его в
cli
и запустить вместо текущего класса щедулера (так как щедулер блокирующий, после вызова start() весь остальной поток остановится и следующие функции выполнены не будут, это нормально). Сделать это лучше где-то в папке worker в отдельном файле.Настроить SQLAlchemyJobStore для хранения тасок, которые нужно запускать. Используй metadata, тогда новая таблица сгенерируется в алембике. Используй engine, тогда будешь использовать то же подключение, что и нужно для обычной работы (зачем их плодить, правда?). Импортни щедулер в файле конфигурации алембика, чтобы тот почувствовал какую миграцию нужно сделать. https://apscheduler.readthedocs.io/en/3.x/modules/jobstores/sqlalchemy.html
Создай джобу, которая будет раз в минуту проверять обновления. Лучше создать ее где-то в отдельном файле, который будет внутри папки worker. Эта джоба должна будет проверять отличие запланированных фетчеров и активных. Эту функцию можно импортнуть в тот файл, где создан щедулер, и подключить через add_job. Похоже на fastapi и его роутеры, правда?)
Создай функцию fetch, которая узнает что за тип фэтча ей нужно сделать и вызывает функцию типа фэтча. Кажется, для этого нужно будет сходить в БД или переписать функцию для щедулинга так, чтобы изначально планировала нужный вид фетча.
The text was updated successfully, but these errors were encountered: