36 lines
701 B
Python

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}