forked from retoor/devplacepy
update
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from devplacepy_services.base.health import health_router
|
||||
from devplacepy_services.base.http import shutdown_pool, startup_pool
|
||||
from devplacepy_services.base.middleware import (
|
||||
InternalAuthMiddleware,
|
||||
InternalCallCounterMiddleware,
|
||||
RequestStatsMiddleware,
|
||||
SanitizeErrorsMiddleware,
|
||||
)
|
||||
from devplacepy_services.base.service import BaseMicroservice
|
||||
from devplacepy_services.database import broker_setup
|
||||
from devplacepy_services.database.routes import router as database_router
|
||||
|
||||
|
||||
class DatabaseService(BaseMicroservice):
|
||||
name = "database"
|
||||
title = "Database"
|
||||
default_port = 10601
|
||||
workers = 1
|
||||
stateful = True
|
||||
depends_on = []
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(self, app: FastAPI):
|
||||
app.state.service_name = self.name
|
||||
self.started_at = __import__("time").monotonic()
|
||||
await startup_pool()
|
||||
await broker_setup.startup()
|
||||
yield
|
||||
await broker_setup.shutdown()
|
||||
await shutdown_pool()
|
||||
|
||||
def build_app(self):
|
||||
app = self.create_app()
|
||||
app.add_middleware(SanitizeErrorsMiddleware)
|
||||
app.add_middleware(InternalAuthMiddleware)
|
||||
app.add_middleware(InternalCallCounterMiddleware)
|
||||
app.add_middleware(RequestStatsMiddleware)
|
||||
app.include_router(health_router(self))
|
||||
app.include_router(database_router)
|
||||
return app
|
||||
|
||||
|
||||
_service = DatabaseService()
|
||||
app = _service.build_app()
|
||||
Reference in New Issue
Block a user