From 36e07db2dad5a6a0661eabde9a30f5b297703e47 Mon Sep 17 00:00:00 2001 From: benoit74 Date: Mon, 22 Jul 2024 09:35:18 +0000 Subject: [PATCH] When scheduling, also consider task age to sort requested tasks --- dispatcher/backend/src/utils/scheduling.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dispatcher/backend/src/utils/scheduling.py b/dispatcher/backend/src/utils/scheduling.py index 08f31708..94376d7d 100644 --- a/dispatcher/backend/src/utils/scheduling.py +++ b/dispatcher/backend/src/utils/scheduling.py @@ -301,7 +301,9 @@ def get_reqs_doable_by(session: so.Session, worker: dbm.Worker) -> List[Dict[str """cursor of RequestedTasks() doable by a worker using all its resources - sorted by priority - - sorted by duration (longest first)""" + - sorted by duration (longest first) + - sorted by updated_at (task requested long ago first, mandatory for zimit farm) + """ def get_document(task: dbm.RequestedTask): return { @@ -351,7 +353,7 @@ def get_document(task: dbm.RequestedTask): return list( sorted( map(get_document, session.execute(stmt).scalars()), - key=lambda x: (-x["priority"], -x["duration"]["value"]), + key=lambda x: (-x["priority"], -x["duration"]["value"], x["updated_at"]), ) )