0

我有一个在 GAE 队列中运行的任务。根据我的逻辑,我想确定任务是否会再次运行。

我不希望它通常由队列执行然后再次将其放入队列中,因为我希望能够检查“X-AppEngine-TaskRetryCount”并在多次尝试后退出尝试。

据我了解,似乎唯一会重新执行任务的情况是发生内部 GAE 错误(或者如果我的代码在“DeadlineExceededException”情况下花费太长时间......(而且我不想持有代码“人质”这么长:))

如何以 GAE 设置 X-AppEngine-TaskRetryCount ++ 的方式将任务重新输入队列?

4

1 回答 1

2

您可以在 python 中使用 self.error() 以编程方式重试/重新启动任务。来自文档:App 引擎通过返回 200–299 范围之外的任何 HTTP 状态代码来重试任务

在任务开始时,您可以使用以下命令测试重试次数:

retries = int(self.request.headers['X-Appengine-Taskretrycount'])
if retries < 10 :
    self.error(409)
    return
于 2012-09-02T19:55:02.200 回答