Skip to content

Commit 285839e

Browse files
author
Andrei Neagu
committed
added deferred_task_uid to store
1 parent 8d2268b commit 285839e

File tree

2 files changed

+12
-3
lines changed
  • services/dynamic-scheduler
    • src/simcore_service_dynamic_scheduler/services/generic_scheduler
    • tests/unit/service_generic_scheduler

2 files changed

+12
-3
lines changed

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/generic_scheduler/_store.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import redis.asyncio as aioredis
66
from pydantic import NonNegativeInt
7+
from servicelib.deferred_tasks import TaskUID
78
from servicelib.redis._client import RedisClientSDK
89
from servicelib.redis._utils import handle_redis_returns_union_types
910
from settings_library.redis import RedisDatabase, RedisSettings
@@ -170,9 +171,10 @@ async def delete(self, *keys: _DeleteScheduleDataKeys) -> None:
170171

171172
class _StepDict(TypedDict):
172173
status: NotRequired[StepStatus]
174+
deferred_task_uid: NotRequired[TaskUID]
173175

174176

175-
_DeleteStepKeys = Literal["status"]
177+
_DeleteStepKeys = Literal["status", "deferred_task_uid"]
176178

177179

178180
class StepStoreProxy:
@@ -201,6 +203,8 @@ def _get_hash_key(self) -> str:
201203

202204
@overload
203205
async def get(self, key: Literal["status"]) -> StepStatus: ...
206+
@overload
207+
async def get(self, key: Literal["deferred_task_uid"]) -> TaskUID: ...
204208
async def get(self, key: str) -> Any:
205209
"""raises KeyNotFoundInHashError if the key is not present in the hash"""
206210
hash_key = self._get_hash_key()
@@ -213,6 +217,8 @@ async def get(self, key: str) -> Any:
213217

214218
@overload
215219
async def set(self, key: Literal["status"], value: StepStatus) -> None: ...
220+
@overload
221+
async def set(self, key: Literal["deferred_task_uid"], value: TaskUID) -> None: ...
216222
async def set(self, key: str, value: Any) -> None:
217223
await self._store.set(self._get_hash_key(), key, value)
218224

services/dynamic-scheduler/tests/unit/service_generic_scheduler/test__store.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import pytest
1010
from faker import Faker
11+
from servicelib.deferred_tasks import TaskUID
1112
from servicelib.redis._utils import handle_redis_returns_union_types
1213
from settings_library.redis import RedisSettings
1314
from simcore_service_dynamic_scheduler.services.generic_scheduler._models import (
@@ -183,9 +184,11 @@ async def test_step_store_proxy_workflow(store: Store, schedule_id: ScheduleId):
183184
await _assert_keys_in_hash(store, hash_key, set())
184185

185186
# set multiple
186-
await proxy.set_multiple({"status": StepStatus.SUCCESS})
187+
await proxy.set_multiple(
188+
{"status": StepStatus.SUCCESS, "deferred_task_uid": TaskUID("mytask")}
189+
)
187190
await _assert_keys(store, {hash_key})
188-
await _assert_keys_in_hash(store, hash_key, {"status"})
191+
await _assert_keys_in_hash(store, hash_key, {"status", "deferred_task_uid"})
189192

190193
# remove all keys an even missing ones
191194
await proxy.delete("status")

0 commit comments

Comments
 (0)