38 lines
757 B
Python

from contextlib import asynccontextmanager
import datetime
from fastapi import FastAPI
import schedule
from . import models, router, schemas
from .database import engine
from .scheduler import run_continuously, run_threaded
from .job import job
from .config import REFETCH_PERIOD_H
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
}