App Engine - 使用Mapper API重新计算任务队列

时间:2010-07-27 08:59:33

标签: google-app-engine mapreduce task-queue

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

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

非常感谢任何帮助:)

谢谢, 克里斯

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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

希望这会有所帮助!!