diff --git a/tubearchivist/home/src/ta/ta_redis.py b/tubearchivist/home/src/ta/ta_redis.py index d8aa3ac..e7e6e59 100644 --- a/tubearchivist/home/src/ta/ta_redis.py +++ b/tubearchivist/home/src/ta/ta_redis.py @@ -182,3 +182,13 @@ class TaskRedis(RedisBase): if expire: self.conn.execute_command("EXPIRE", key, self.EXPIRE) + + def del_task(self, task_id): + """delete task result by id""" + self.conn.execute_command("DEL", f"{self.BASE}{task_id}") + + def del_all(self): + """delete all task results""" + all_tasks = self.get_all() + for task_id in all_tasks: + self.del_task(task_id) diff --git a/tubearchivist/home/src/ta/task_manager.py b/tubearchivist/home/src/ta/task_manager.py index 2a4f0ba..847c315 100644 --- a/tubearchivist/home/src/ta/task_manager.py +++ b/tubearchivist/home/src/ta/task_manager.py @@ -17,7 +17,9 @@ class TaskManager: if not all_keys: return False - return [handler.get_single(i) for i in all_keys] + all_results = [handler.get_single(i) for i in all_keys] + + return sorted(all_results, key=lambda d: d["date_done"]) def get_tasks_by_name(self, task_name): """get all tasks by name""" @@ -40,6 +42,7 @@ class TaskManager: "status": "PENDING", "result": None, "traceback": None, + "date_done": False, "name": task.name, "task_id": task.request.id, }