Как реализовать автоматические повторные попытки с помощью задач GAE? - PullRequest
2 голосов
/ 03 августа 2011

Вот мой код:

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 Ответ

6 голосов
/ 03 августа 2011

Если не удается выполнить задачу (возвращая любой код состояния HTTP за пределами диапазона 200–299), App Engine повторяет задачу, пока она не будет выполнена успешно.По умолчанию система постепенно уменьшает частоту повторных попыток, чтобы избежать переполнения вашего приложения слишком большим количеством запросов, но планирует повторные попытки повторения не более одного раза в час, пока задача не будет выполнена.* Любое исключение вызовет код состояния, отличный от 2XX, поэтому повышение любого исключит повторное постановка задачи в очередь и повторную попытку.

...