1

即使系统抛出500,是否可以将http请求状态设置为200?我有一个正在运行的任务。当 GAE 抛出 http 请求 500 时,我想在任务结束时手动将其设置为 200,以防止重试任务。

4

1 回答 1

3

返回200 状态代码的典型模式是将代码包装在tryandexcept子句之间:

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

这个例子捕获了所有总是返回 a 的异常200 status code,在你的应用程序中你可能想要添加一个适当的异常列表来捕获;对于某些类型的瞬态异常,引发 500 错误是正确的,该错误隐含地告诉 App Engine 再次尝试该任务。

编辑:
正如正确建议的那样,您应该使用logging.exception而不是logging.error在日志中包含堆栈跟踪。

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

这还有第二个好处,它允许您在启用ereporter服务后通过电子邮件接收日志报告。

于 2011-01-13T08:03:34.507 回答