Skip to content

Commit caaaf9c

Browse files
committed
added a setting
1 parent 7317e12 commit caaaf9c

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

services/director-v2/src/simcore_service_director_v2/core/settings.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ class ComputationalBackendSettings(BaseCustomSettings):
5959
),
6060
] = 50
6161
COMPUTATIONAL_BACKEND_DASK_CLIENT_ENABLED: bool = True
62+
COMPUTATIONAL_BACKEND_DASK_CLIENT_MAX_DISTRIBUTED_CONCURRENCY: Annotated[
63+
PositiveInt,
64+
Field(
65+
description="defines how many concurrent connections to each dask scheduler are allowed accross all director-v2 replicas"
66+
),
67+
] = 20
6268
COMPUTATIONAL_BACKEND_DEFAULT_CLUSTER_URL: Annotated[
6369
AnyUrl,
6470
Field(

services/director-v2/src/simcore_service_director_v2/modules/comp_scheduler/_scheduler_dask.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070
_DASK_CLIENT_RUN_REF: Final[str] = "{user_id}:{project_id}:{run_id}"
7171
_TASK_RETRIEVAL_ERROR_TYPE: Final[str] = "task-result-retrieval-timeout"
7272
_TASK_RETRIEVAL_ERROR_CONTEXT_TIME_KEY: Final[str] = "check_time"
73-
_DASK_CLUSTER_CLIENT_SEMAPHORE_CAPACITY: Final[int] = 20
7473

7574

7675
def _get_redis_client_from_scheduler(
@@ -90,10 +89,20 @@ def _get_semaphore_cluster_redis_key(
9089
return f"{APP_NAME}-cluster-user_id_{user_id}-wallet_id_{run_metadata.get('wallet_id')}"
9190

9291

92+
def _get_semaphore_capacity_from_scheduler(
93+
_user_id: UserID,
94+
scheduler: "DaskScheduler",
95+
**kwargs, # pylint: disable=unused-argument # noqa: ARG001
96+
) -> int:
97+
return (
98+
scheduler.settings.COMPUTATIONAL_BACKEND_DASK_CLIENT_MAX_DISTRIBUTED_CONCURRENCY
99+
)
100+
101+
93102
@with_limited_concurrency_cm(
94103
_get_redis_client_from_scheduler,
95104
key=_get_semaphore_cluster_redis_key,
96-
capacity=_DASK_CLUSTER_CLIENT_SEMAPHORE_CAPACITY,
105+
capacity=_get_semaphore_capacity_from_scheduler,
97106
blocking=True,
98107
blocking_timeout=None,
99108
)

0 commit comments

Comments
 (0)