如何使用 task_name 检索排队的任务

How to retrieve a queued task with task_name

我正在构建一个 Python 在以下流程中使用任务队列的应用程序

  1. 通过调用 taskqueue.add()
  2. 将拉取任务添加到任务队列
  3. 通过调用 taskqueue.lease_tasks()
  4. 来租用相同的任务
  5. 一段时间后,我们可能希望通过调用 taskqueue.modify_task_lease()
  6. 来缩短租约时间

问题是,这 3 个步骤发生在不同的网络会话中。在第 3 步,modify_task_lease() 函数需要一个任务实例作为参数,而我手头只有 task_name,它是通过 Web 挂钩从第 2 步传递过来的。

那么有什么方法可以用它的名字检索任务吗?

document中,我找到了delete_tasks_by_name(),但是没有modify_task_lease_by_name(),这正是我想要做的。

delete_tasks_by_name() is just a wrapper around delete_tasks_by_name_async(),实现为

if isinstance(task_name, str):
  return self.delete_tasks_async(Task(name=task_name), rpc)
else:
  tasks = [Task(name=name) for name in task_name]
  return self.delete_tasks_async(tasks, rpc)

所以我猜你可以类似地使用 Task() constructor to obtain the task instance needed by modify_task_lease():

modify_task_lease(Task(name=your_task_name), lease_seconds)