File tree Expand file tree Collapse file tree 3 files changed +31
-5
lines changed
src/simcore_service_catalog Expand file tree Collapse file tree 3 files changed +31
-5
lines changed Original file line number Diff line number Diff line change 1+ from collections .abc import AsyncIterator
2+ from typing import cast
3+
4+ from fastapi import FastAPI
5+ from fastapi_lifespan_manager import LifespanManager , State
6+ from servicelib .fastapi .redis_lifespan import (
7+ redis_database_lifespan ,
8+ )
9+ from servicelib .redis import RedisClientSDK
10+
11+ redis_client_lifespan = LifespanManager ()
12+ redis_client_lifespan .add (redis_database_lifespan )
13+
14+
15+ @redis_client_lifespan .add
16+ async def _redis_client_sdk_lifespan (
17+ app : FastAPI , state : State
18+ ) -> AsyncIterator [State ]:
19+ app .state .redis_client_sdk = state ["REDIS_CLIENT_SDK" ]
20+ yield {}
21+ del app .state .redis_client_sdk
22+
23+
24+ def get_redis_client (app : FastAPI ) -> RedisClientSDK :
25+ return cast (RedisClientSDK , app .state .redis_client_sdk )
Original file line number Diff line number Diff line change 1212)
1313from servicelib .fastapi .redis_lifespan import (
1414 RedisLifespanState ,
15- redis_database_lifespan ,
1615)
1716from settings_library .redis import RedisDatabase
1817
1918from .._meta import APP_FINISHED_BANNER_MSG , APP_NAME , APP_STARTED_BANNER_MSG
2019from ..api .rpc .events import rpc_api_lifespan
2120from ..clients .director import director_lifespan
2221from ..clients .rabbitmq import rabbitmq_lifespan
22+ from ..clients .redis import redis_client_lifespan
2323from ..repository .events import repository_lifespan_manager
2424from ..service .function_services import function_services_lifespan
2525from .background_tasks import background_task_lifespan
@@ -81,8 +81,9 @@ def create_app_lifespan() -> LifespanManager:
8181 app_lifespan .add (function_services_lifespan )
8282
8383 # - redis
84+ app_lifespan .include (redis_client_lifespan )
85+
8486 # - background task
85- app_lifespan .add (redis_database_lifespan )
8687 app_lifespan .add (background_task_lifespan )
8788
8889 # - prometheus instrumentation
Original file line number Diff line number Diff line change @@ -227,17 +227,17 @@ def repository_lifespan_disabled(mocker: MockerFixture):
227227
228228
229229@pytest .fixture
230- def redis_lifespan_disabled (mocker : MockerFixture ):
230+ def redis_client_lifespan (mocker : MockerFixture ):
231231 mocker .patch .object (
232232 simcore_service_catalog .core .events ,
233- "redis_database_lifespan " ,
233+ "redis_client_lifespan " ,
234234 autospec = True ,
235235 )
236236
237237
238238@pytest .fixture
239239def background_task_lifespan_disabled (
240- mocker : MockerFixture , redis_lifespan_disabled : None
240+ mocker : MockerFixture , redis_client_lifespan : None
241241) -> None :
242242 class MockedBackgroundTaskContextManager :
243243 async def __aenter__ (self ):
You can’t perform that action at this time.
0 commit comments