Skip to content

Commit 4b3d6e4

Browse files
committed
use asyncpg
1 parent 9141ca9 commit 4b3d6e4

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

services/api-server/src/simcore_service_api_server/api/dependencies/database.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
from aiopg.sa import Engine
66
from fastapi import Depends
77
from fastapi.requests import Request
8+
from sqlalchemy.ext.asyncio import AsyncEngine
89

10+
from ...db.events import get_asyncpg_engine
911
from ...db.repositories import BaseRepository
1012

1113
logger = logging.getLogger(__name__)
@@ -15,6 +17,10 @@ def get_db_engine(request: Request) -> Engine:
1517
return cast(Engine, request.app.state.engine)
1618

1719

20+
def get_db_asyncpg_engine(request: Request) -> AsyncEngine:
21+
return get_asyncpg_engine(request.app)
22+
23+
1824
def get_repository(repo_type: type[BaseRepository]) -> Callable:
1925
async def _get_repo(
2026
engine: Annotated[Engine, Depends(get_db_engine)],

services/api-server/src/simcore_service_api_server/api/routes/solvers_jobs_getters.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from pydantic.types import PositiveInt
1919
from servicelib.fastapi.requests_decorators import cancel_on_disconnect
2020
from servicelib.logging_utils import log_context
21+
from sqlalchemy.ext.asyncio import AsyncEngine
2122

2223
from ...exceptions.custom_errors import InsufficientCreditsError, MissingWalletError
2324
from ...exceptions.service_errors_utils import DEFAULT_BACKEND_SERVICE_STATUS_CODES
@@ -237,6 +238,7 @@ async def get_job_outputs(
237238
job_id: JobID,
238239
user_id: Annotated[PositiveInt, Depends(get_current_user_id)],
239240
db_engine: Annotated[Engine, Depends(get_db_engine)],
241+
async_pg_engine: Annotated[AsyncEngine, Depends(get_db_asyncpg_engine)],
240242
webserver_api: Annotated[AuthSession, Depends(get_webserver_session)],
241243
storage_client: Annotated[StorageApi, Depends(get_api_client(StorageApi))],
242244
):
@@ -263,7 +265,7 @@ async def get_job_outputs(
263265
user_id=user_id,
264266
project_uuid=job_id,
265267
node_uuid=UUID(node_ids[0]),
266-
db_engine=db_engine,
268+
db_engine=async_pg_engine,
267269
)
268270

269271
results: dict[str, ArgumentTypes] = {}

services/api-server/src/simcore_service_api_server/db/events.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
raise_if_migration_not_ready,
1313
)
1414
from simcore_postgres_database.utils_aiosqlalchemy import get_pg_engine_stateinfo
15+
from sqlalchemy.ext.asyncio import AsyncEngine
1516
from tenacity import retry
1617

1718
from .._meta import PROJECT_NAME
@@ -81,5 +82,5 @@ async def asyncpg_close_db_connection(app: FastAPI) -> None:
8182
await engine.dispose()
8283

8384

84-
def get_asyncpg_engine(app: FastAPI):
85+
def get_asyncpg_engine(app: FastAPI) -> AsyncEngine:
8586
return app.state.asyncpg_engine

0 commit comments

Comments
 (0)