即使在google任务队列

时间:2017-11-08 17:46:19

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

我正在使用谷歌任务队列,我在队列上设置 task_retry_limit

默认行为是在以下情况下从任务队列中删除任务:

1) when the task is executed successfully or

2) when the task reaches the maximum number of retry attempts set.

在我的用例中,我对第二种情况有疑问。我想将任务保留在任务队列中,即使在最大重试次数

之后

我不想在 task_retry_limit 之后重试该任务,但我想将其保留在任务队列中,以便我以后可以手动运行

Queue.yaml中是否有驱动此项的参数?

我知道解决这个问题的方法是设置一个温和的 task_age_limit ,但我不希望该任务继续重试。

1 个答案:

答案 0 :(得分:1)

不,任务队列目前不是为了保持达到最大重试次数的任务而设计的。

我看到你可以尝试的两个选项,当你检测到任务代码时,它会在最后的任务重试时失败:

  • 创建某种FailedTask数据存储区实体,其中包含稍后在手动触发器下重新创建和排队原始失败任务副本所需的所有信息/参数
  • 将任务重新排队到不同的队列上,在重试之间配置的时间非常长 - 足够长,直到你手动触发它们的时候才能实际重试(你可以对任何仍未完成的任务执行此操作,任何队列,在任何时候)。

以某种方式相关:handling failure after maximum number of retries in google app engine task queues