11# SPDX-FileCopyrightText: 2023-2024 MTS PJSC
22# SPDX-License-Identifier: Apache-2.0
3+ from celery import Celery
34from fastapi import FastAPI , HTTPException
45from fastapi .exceptions import RequestValidationError
56from pydantic import ValidationError
1819from syncmaster .backend .settings import ServerAppSettings as Settings
1920from syncmaster .db .factory import create_session_factory , get_uow
2021from syncmaster .exceptions import SyncmasterError
22+ from syncmaster .worker import celery_factory
2123
2224
2325def application_factory (settings : Settings ) -> FastAPI :
@@ -30,6 +32,7 @@ def application_factory(settings: Settings) -> FastAPI:
3032 redoc_url = None ,
3133 )
3234 application .state .settings = settings
35+ application .state .celery = celery_factory (settings )
3336 application .include_router (api_router )
3437 application .exception_handler (RequestValidationError )(validation_exception_handler )
3538 application .exception_handler (ValidationError )(validation_exception_handler )
@@ -44,6 +47,7 @@ def application_factory(settings: Settings) -> FastAPI:
4447 {
4548 Settings : lambda : settings ,
4649 UnitOfWork : get_uow (session_factory , settings = settings ),
50+ Celery : lambda : application .state .celery ,
4751 },
4852 )
4953
0 commit comments