import datetime import schedule from fastapi import FastAPI from . import models, router, schemas from .config import REFETCH_PERIOD_H from .database import engine from .job import job from .scheduler import run_continuously, run_threaded models.Base.metadata.create_all(bind=engine) start_stamp = datetime.datetime.now() async def lifespan(app: FastAPI): schedule.every(REFETCH_PERIOD_H).hours.do(job) stop_run_continuously = run_continuously() run_threaded(job) yield stop_run_continuously() app = FastAPI(lifespan=lifespan) app.include_router(router.router) @app.get("/", response_model=schemas.Healthcheck) def Healthcheck(): return {"up_since": start_stamp}