Статус запроса Google App Engine - PullRequest
       2

Статус запроса Google App Engine

1 голос
/ 13 января 2011

Можно ли установить статус http-запроса на 200, даже если система выдает 500?У меня есть задача, которая выполняется.Когда GAE выдает http-запрос 500, я хочу вручную установить его на 200 в конце задачи, чтобы предотвратить повторную попытку.

1 Ответ

3 голосов
/ 13 января 2011

Типичный шаблон для возврата кода состояния 200 заключается в переносе кода между пунктами try и except:

try:
  do your stuff      
except:
  logging.error("Something bad happened")

Этот пример перехватывает все исключения, возвращая всегда 200 status code, в вашем приложении вы можете добавить правильный список исключений для перехвата; для некоторых типов исключений transient правильно выдавать ошибку 500, которая неявно говорит App Engine о повторной попытке выполнить задачу.

EDIT:
Как правильно предложено, вы должны использовать logging.exception вместо logging.error, чтобы включить трассировку стека в журнал.

try:
  do your stuff      
except:
  logging.exception("Something bad happened") #It will log the stacktrace too

Это второе преимущество: оно позволяет получать отчеты по электронной почте после включения службы ereporter .

...