如何手动将任务设置为第二次在gae队列中运行

时间:2012-09-02 14:55:05

标签: google-app-engine queue task

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

retries = int(self.request.headers['X-Appengine-Taskretrycount'])
if retries < 10 :
    self.error(409)
    return