1

这是我正在尝试做的事情:我使用新的 Mapper API 设置了 MapReduce 作业。这基本上工作正常。问题是任务队列重试所有失败的任务。但实际上我不希望他那样做。有没有办法从队列中删除任务或告诉它任务已成功完成?也许通过 200 状态码?

我知道我可以获取 X-Appengine-Taskretrycount,但这并没有真正帮助,因为我不知道如何停止任务。我尝试在 try .. except 块中使用“通过”,但这也不起作用。

任何帮助将非常感激 :)

谢谢,克里斯

4

2 回答 2

2

http://code.google.com/p/appengine-mapreduce/source/detail?r=114更改,上下文对象具有 task_retry_count 属性。

于 2010-09-29T18:06:03.787 回答
1

在您的任务处理程序中执行此操作


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

希望这可以帮助!!

于 2010-12-28T22:12:33.503 回答