Skip to content

Commit fb59f2e

Browse files
committed
ensure worker marks the scheduling as done
1 parent 70d49f1 commit fb59f2e

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ async def request_pipeline_scheduling(
2727
iteration=iteration,
2828
),
2929
)
30-
await CompRunsRepository.instance(db_engine).mark_as_scheduled(
30+
await CompRunsRepository.instance(db_engine).mark_for_scheduling(
3131
user_id=user_id, project_id=project_id, iteration=iteration
3232
)

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,18 @@ async def _set_run_result(
227227
final_state=(run_result in COMPLETED_STATES),
228228
)
229229

230+
async def _set_schedule_done(
231+
self,
232+
user_id: UserID,
233+
project_id: ProjectID,
234+
iteration: Iteration,
235+
) -> None:
236+
await CompRunsRepository.instance(self.db_engine).mark_as_scheduled_done(
237+
user_id=user_id,
238+
project_id=project_id,
239+
iteration=iteration,
240+
)
241+
230242
async def _set_states_following_failed_to_aborted(
231243
self, project_id: ProjectID, dag: nx.DiGraph
232244
) -> dict[NodeIDStr, CompTaskAtDB]:
@@ -631,6 +643,8 @@ async def apply(
631643
)
632644
except ComputationalBackendNotConnectedError:
633645
_logger.exception("Computational backend is not connected!")
646+
finally:
647+
await self._set_schedule_done(user_id, project_id, iteration)
634648

635649
async def _schedule_tasks_to_stop(
636650
self,

services/director-v2/src/simcore_service_director_v2/modules/db/repositories/comp_runs.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ async def mark_for_cancellation(
177177
cancelled=arrow.utcnow().datetime,
178178
)
179179

180-
async def mark_as_scheduled(
180+
async def mark_for_scheduling(
181181
self, *, user_id: UserID, project_id: ProjectID, iteration: PositiveInt
182182
) -> CompRunsAtDB | None:
183183
return await self.update(
@@ -186,3 +186,13 @@ async def mark_as_scheduled(
186186
iteration,
187187
last_scheduled=arrow.utcnow().datetime,
188188
)
189+
190+
async def mark_as_scheduled_done(
191+
self, *, user_id: UserID, project_id: ProjectID, iteration: PositiveInt
192+
) -> CompRunsAtDB | None:
193+
return await self.update(
194+
user_id,
195+
project_id,
196+
iteration,
197+
last_scheduled=None,
198+
)

0 commit comments

Comments
 (0)