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

LA_*_*LA_ 2 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?
Run Code Online (Sandbox Code Playgroud)

Chr*_*loe 6

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

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

  • 你不需要在这里引发异常 - 只需要执行`self.response.set_status(500)`. (3认同)