move startup and teardown events to forge api_app.py (#3730)

This commit is contained in:
Shuchang Zheng
2025-10-15 22:39:13 -07:00
committed by GitHub
parent a610292ea2
commit 6cfe998f8a
2 changed files with 14 additions and 0 deletions

View File

@@ -55,7 +55,19 @@ def custom_openapi() -> dict:
async def lifespan(_: FastAPI) -> AsyncGenerator[None, Any]:
"""Lifespan context manager for FastAPI app startup and shutdown."""
LOG.info("Server started")
if forge_app.api_app_startup_event:
LOG.info("Calling api app startup event")
try:
await forge_app.api_app_startup_event()
except Exception:
LOG.exception("Failed to execute api app startup event")
yield
if forge_app.api_app_shutdown_event:
LOG.info("Calling api app shutdown event")
try:
await forge_app.api_app_shutdown_event()
except Exception:
LOG.exception("Failed to execute api app shutdown event")
LOG.info("Server shutting down")

View File

@@ -127,6 +127,8 @@ scrape_exclude: ScrapeExcludeFunc | None = None
authentication_function: Callable[[str], Awaitable[Organization]] | None = None
authenticate_user_function: Callable[[str], Awaitable[str | None]] | None = None
setup_api_app: Callable[[FastAPI], None] | None = None
api_app_startup_event: Callable[[], Awaitable[None]] | None = None
api_app_shutdown_event: Callable[[], Awaitable[None]] | None = None
agent = ForgeAgent()