/
sergek12
/
Selectel_Python_developer
Обзор
Документация
Войти
/
sergek12
/
Selectel_Python_developer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
app/main.py
42 строки
1 KB
AmbrellaNotEvil
Add files via upload
15 мар 2026, 22:56
Не верифицирован
15 мар 2026, 22:56
442fbbd
Код
Авторство
О чём код?
import logging from fastapi import FastAPI from app.api.v1.router import api_router from app.core.logging import setup_logging from app.db.session import async_session_maker from app.services.parser import parse_and_store from app.services.scheduler import create_scheduler logger = logging.getLogger(__name__) app = FastAPI(title="Selectel Vacancies API") app.include_router(api_router) setup_logging() _scheduler = None async def _run_parse_job() -> None: try: async with async_session_maker() as session: await parse_and_store(session) except Exception as exc: logger.exception("Ошибка фонового парсинга: %s", exc) @app.on_event("startup") async def on_startup() -> None: logger.info("Запуск приложения") await _run_parse_job() global _scheduler _scheduler = create_scheduler(_run_parse_job) _scheduler.start() @app.on_event("shutdown") async def on_shutdown() -> None: logger.info("Остановка приложения") if _scheduler: _scheduler.shutdown(wait=False)