diff --git a/model_server/base/api.py b/model_server/base/api.py index d1e3abd3f460919b63e0519b0b5e03d2ecad0293..3ed87ba3a429ef95df383a897a4bc501b92c0c4f 100644 --- a/model_server/base/api.py +++ b/model_server/base/api.py @@ -234,4 +234,6 @@ def list_tasks() -> Dict[str, TaskInfo]: @app.put('/tasks/run/on_files') def task_file_batch(): # new callable that parameterizes file name to acc_id, then passes this to to /tasks/*/run - pass \ No newline at end of file + pass + +# TODO: tasks to run all enqueued items \ No newline at end of file diff --git a/model_server/base/session.py b/model_server/base/session.py index 9df135f5679d5650144ab003a2bdf3725357e19c..cb8a757d4362afd389a6426a1559acde9277d6e0 100644 --- a/model_server/base/session.py +++ b/model_server/base/session.py @@ -69,6 +69,16 @@ class TaskCollection(object): def list_tasks(self) -> OrderedDict: return self._tasks + @property + def next_waiting(self): + """ + Return the task_id of the first status waiting for completion, or else None + """ + for k, v in self._tasks.items(): + if v[k]['status'] == self.status_codes['waiting']: + return k + return None + def run_task(self, task_id: str): task = self._tasks[task_id] f = self._handles[task_id] @@ -137,6 +147,7 @@ class _Session(object): raise InvalidPathError(f'Could not find {path}') self.paths[key] = Path(path) + # TODO: option to automatically write to file e.g. in automated task queue processing def add_accessor(self, acc: GenericImageDataAccessor, accessor_id: str = None) -> str: """ Add an accessor to session context