33
44import logging
55from contextlib import asynccontextmanager
6+ from typing import Any
67
78import anyio
89from fast_depends import dependency_provider
910from faststream import ContextRepo , FastStream
1011from faststream ._compat import ExceptionGroup
12+ from faststream .asgi import AsgiFastStream , AsgiResponse , get
1113from faststream .kafka import KafkaBroker
1214from sqlalchemy .ext .asyncio import AsyncSession
1315
2022logger = logging .getLogger (__name__ )
2123
2224
25+ @get # type: ignore[arg-type]
26+ async def liveness (scope : dict [str , Any ]) -> AsgiResponse :
27+ return AsgiResponse (b"" , status_code = 204 )
28+
29+
2330def broker_factory (settings : ConsumerApplicationSettings ) -> KafkaBroker :
2431 broker = KafkaBroker (
2532 bootstrap_servers = settings .kafka .bootstrap_servers ,
@@ -43,7 +50,7 @@ def broker_factory(settings: ConsumerApplicationSettings) -> KafkaBroker:
4350 return broker
4451
4552
46- def application_factory (settings : ConsumerApplicationSettings ) -> FastStream :
53+ def application_factory (settings : ConsumerApplicationSettings ) -> AsgiFastStream :
4754 @asynccontextmanager
4855 async def security_lifespan (context : ContextRepo ):
4956 try :
@@ -66,7 +73,7 @@ async def security_lifespan(context: ContextRepo):
6673 description = "Data.Rentgen is a nextgen DataLineage service" ,
6774 version = data_rentgen .__version__ ,
6875 logger = logger ,
69- )
76+ ). as_asgi ( asgi_routes = [( "/internal/healthcheck/liveness" , liveness )])
7077
7178
7279def get_application ():
0 commit comments