如何使用GAE任务实现自动重试?

时间:2011-08-03 11:49:16

标签: google-app-engine task

这是我的代码:

class PublishPhotosHandler(webapp.RequestHandler):
    for argument in files_arguments:
        taskqueue.add(url='/upload', params={'key': key})

class UploadWorker(webapp.RequestHandler):
    def post(self):
        key = self.request.get('key')
        result = urlfetch.fetch(...)
        # how to return there an error, so the task will be retried?

1 个答案:

答案 0 :(得分:6)

  

如果任务无法执行(通过返回200-299范围之外的任何HTTP状态代码),App Engine将重试该任务,直到成功为止。默认情况下,系统会逐渐降低重试率,以避免因请求过多而导致应用程序泛滥,但计划重试尝试每小时最多重复一次,直到任务成功为止。

引发任何异常将导致非2XX状态代码,因此引发任何异常将导致该任务再次排队并重试。