28 lines
734 B
Python
28 lines
734 B
Python
|
|
import threading
|
||
|
|
|
||
|
|
from fastapi import FastAPI
|
||
|
|
|
||
|
|
from .routers import analyze, ingest, query
|
||
|
|
from .services.retry_worker import run_retry_loop
|
||
|
|
|
||
|
|
app = FastAPI(title="eventflow-fastapi", version="0.1.0")
|
||
|
|
|
||
|
|
app.include_router(ingest.router, prefix="/ingest", tags=["ingest"])
|
||
|
|
app.include_router(analyze.router, prefix="/analyze", tags=["analyze"])
|
||
|
|
app.include_router(query.router, prefix="/query", tags=["query"])
|
||
|
|
|
||
|
|
|
||
|
|
_stop = threading.Event()
|
||
|
|
|
||
|
|
|
||
|
|
@app.on_event("startup")
|
||
|
|
def _startup() -> None:
|
||
|
|
# Background retry loop so transient gateway 5xx doesn't permanently stall parsing.
|
||
|
|
t = threading.Thread(target=run_retry_loop, args=(_stop,), daemon=True)
|
||
|
|
t.start()
|
||
|
|
|
||
|
|
|
||
|
|
@app.on_event("shutdown")
|
||
|
|
def _shutdown() -> None:
|
||
|
|
_stop.set()
|