App Engine-使用Mapper API的任务队列重试计数 [英] App Engine - Task Queue Retry Count with Mapper API

查看:97
本文介绍了App Engine-使用Mapper API的任务队列重试计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

here is what I'm trying to do: I set up a MapReduce job with the new Mapper API. This basically works fine. The problem is that the Task Queue retries all tasks that have failed. But actually I don't want him to do that. Is there a way to delete a task from the queue or tell it that the task was completed successfully? Perhaps passing a 200 status code?

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

I know that I can fetch the X-Appengine-Taskretrycount, but that doesn't really help since I don't know how to stop the task. I tried using a 'pass' in the try .. except block but that didn't work either.

任何帮助将不胜感激:)

Any help would be much appreciated :)

谢谢, 克里斯

推荐答案

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

In your task handler do this



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

希望这会有所帮助!

这篇关于App Engine-使用Mapper API的任务队列重试计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆