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

时间:2018-07-21 12:54:36

标签: python google-app-engine task-queue

我正在按照以下流程构建一个与taskqueue一起使用的Python应用程序

  1. 通过调用taskqueue.add()
  2. 将拉任务添加到任务队列中
  3. 通过调用taskqueue.lease_tasks()
  4. 租赁同一任务
  5. 一段时间后,我们可能想通过致电taskqueue.modify_task_lease()
  6. 来缩短租赁时间。

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

那么有什么方法可以检索任务名称?

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

1 个答案:

答案 0 :(得分:2)

delete_tasks_by_name()只是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()构造函数来获取modify_task_lease()所需的任务实例:

modify_task_lease(Task(name=your_task_name), lease_seconds)