Skip to content

Commit efa38b6

Browse files
Add shutdown event
1 parent 29ff6db commit efa38b6

File tree

1 file changed

+22
-3
lines changed
  • services/storage/src/simcore_service_storage/modules/celery

1 file changed

+22
-3
lines changed

services/storage/src/simcore_service_storage/modules/celery/__init__.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,45 @@
1-
from celery_library.common import create_app, create_task_manager
1+
from celery_library.backends._redis import RedisTaskInfoStore
2+
from celery_library.common import create_app
23
from celery_library.task_manager import CeleryTaskManager
34
from celery_library.types import register_celery_types, register_pydantic_types
45
from fastapi import FastAPI
56
from models_library.api_schemas_storage.storage_schemas import (
67
FileUploadCompletionBody,
78
FoldersBody,
89
)
10+
from servicelib.redis import RedisClientSDK
911
from settings_library.celery import CelerySettings
12+
from settings_library.redis import RedisDatabase
1013

1114
from ...models import FileMetaData
1215

1316

1417
def setup_task_manager(app: FastAPI, celery_settings: CelerySettings) -> None:
1518
async def on_startup() -> None:
16-
app.state.task_manager = await create_task_manager(
17-
create_app(celery_settings), celery_settings
19+
redis_client_sdk = RedisClientSDK(
20+
celery_settings.CELERY_REDIS_RESULT_BACKEND.build_redis_dsn(
21+
RedisDatabase.CELERY_TASKS
22+
),
23+
client_name="celery_tasks",
24+
)
25+
app.state.celery_tasks_redis_client_sdk = redis_client_sdk
26+
await redis_client_sdk.setup()
27+
28+
app.state.task_manager = CeleryTaskManager(
29+
create_app(celery_settings),
30+
celery_settings,
31+
RedisTaskInfoStore(redis_client_sdk),
1832
)
1933

2034
register_celery_types()
2135
register_pydantic_types(FileUploadCompletionBody, FileMetaData, FoldersBody)
2236

37+
async def on_shutdown() -> None:
38+
redis_client_sdk: RedisClientSDK = app.state.celery_tasks_redis_client_sdk
39+
await redis_client_sdk.shutdown()
40+
2341
app.add_event_handler("startup", on_startup)
42+
app.add_event_handler("shutdown", on_shutdown)
2443

2544

2645
def get_task_manager_from_app(app: FastAPI) -> CeleryTaskManager:

0 commit comments

Comments
 (0)