Skip to content

Commit 0c7623c

Browse files
committed
✨ Refactor: Update RPC API route setup to use async iterator for improved lifespan management
1 parent 0f28f21 commit 0c7623c

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import logging
2+
from collections.abc import AsyncIterator
23

34
from fastapi import FastAPI
5+
from fastapi_lifespan_manager import State
46
from models_library.api_schemas_catalog import CATALOG_RPC_NAMESPACE
57

68
from ...services.rabbitmq import get_rabbitmq_rpc_server
@@ -9,9 +11,11 @@
911
_logger = logging.getLogger(__name__)
1012

1113

12-
def setup_rpc_api_routes(app: FastAPI) -> None:
13-
async def _on_startup() -> None:
14-
rpc_server = get_rabbitmq_rpc_server(app)
15-
await rpc_server.register_router(_services.router, CATALOG_RPC_NAMESPACE, app)
16-
17-
app.add_event_handler("startup", _on_startup)
14+
async def setup_rpc_api_routes(app: FastAPI) -> AsyncIterator[State]:
15+
rpc_server = get_rabbitmq_rpc_server(app)
16+
await rpc_server.register_router(_services.router, CATALOG_RPC_NAMESPACE, app)
17+
try:
18+
yield {}
19+
finally:
20+
# No specific cleanup required for now
21+
pass

services/catalog/src/simcore_service_catalog/core/application.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
SUMMARY,
1515
)
1616
from ..api.rest.routes import setup_rest_api_routes
17-
from ..api.rpc.routes import setup_rpc_api_routes
1817
from ..exceptions.handlers import setup_exception_handlers
1918
from . import events
2019
from .settings import ApplicationSettings
@@ -70,7 +69,6 @@ def create_app() -> FastAPI:
7069

7170
# ROUTES
7271
setup_rest_api_routes(app, vtag=API_VTAG)
73-
setup_rpc_api_routes(app)
7472

7573
# EXCEPTIONS
7674
setup_exception_handlers(app)

services/catalog/src/simcore_service_catalog/core/events.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from servicelib.fastapi.tracing import initialize_tracing
1515

1616
from .._meta import APP_FINISHED_BANNER_MSG, APP_NAME, APP_STARTED_BANNER_MSG
17+
from ..api.rpc.routes import setup_rpc_api_routes
1718
from ..db.events import setup_database
1819
from ..services.director import setup_director
1920
from ..services.function_services import setup_function_services
@@ -73,6 +74,9 @@ def create_app_lifespan():
7374
# - rabbitmq lifespan
7475
app_lifespan.add(setup_rabbitmq)
7576

77+
# - rpc api routes lifespan
78+
app_lifespan.add(setup_rpc_api_routes)
79+
7680
# - director lifespan
7781
app_lifespan.add(setup_director)
7882

0 commit comments

Comments
 (0)