这是我正在尝试做的事情:我使用新的 Mapper API 设置了 MapReduce 作业。这基本上工作正常。问题是任务队列重试所有失败的任务。但实际上我不希望他那样做。有没有办法从队列中删除任务或告诉它任务已成功完成?也许通过 200 状态码?
我知道我可以获取 X-Appengine-Taskretrycount,但这并没有真正帮助,因为我不知道如何停止任务。我尝试在 try .. except 块中使用“通过”,但这也不起作用。
任何帮助将非常感激 :)
谢谢,克里斯
这是我正在尝试做的事情:我使用新的 Mapper API 设置了 MapReduce 作业。这基本上工作正常。问题是任务队列重试所有失败的任务。但实际上我不希望他那样做。有没有办法从队列中删除任务或告诉它任务已成功完成?也许通过 200 状态码?
我知道我可以获取 X-Appengine-Taskretrycount,但这并没有真正帮助,因为我不知道如何停止任务。我尝试在 try .. except 块中使用“通过”,但这也不起作用。
任何帮助将非常感激 :)
谢谢,克里斯
从http://code.google.com/p/appengine-mapreduce/source/detail?r=114更改,上下文对象具有 task_retry_count 属性。
在您的任务处理程序中执行此操作
class yourTaskWorker(webapp.RequestHandler):
def post(self):
logging.info('yourTaskWorker (post)...')
if int(self.request.headers['X-Appengine-Taskretrycount']) == 0:
logging.info('running task...')
# call whatever functions you want here
else:
logging.info('this task failed before, not going to retry.')
# obviously call nothing here, the task will "pass" without error and go away
希望这可以帮助!!