这是我正在尝试做的事情: 我使用新的Mapper API设置了MapReduce作业。这基本上工作正常。 问题是任务队列重试所有失败的任务。但实际上我并不希望他这样做。 有没有办法从队列中删除任务或告诉它任务已成功完成?也许传递200状态代码?
我知道我可以获取X-Appengine-Taskretrycount,但这并没有真正帮助,因为我不知道如何停止任务。我尝试在try ..中使用'pass',但是块也没有用。
非常感谢任何帮助:)
谢谢, 克里斯
答案 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
希望这会有所帮助!!