【发布时间】:2011-01-13 07:02:39
【问题描述】:
即使系统抛出500,是否可以将http请求状态设置为200? 我有一个正在运行的任务。当 GAE 抛出 http 请求 500 时,我想在任务结束时手动将其设置为 200,以防止重试任务。
【问题讨论】:
-
你不能只关闭重试吗?
标签: google-app-engine task-queue
即使系统抛出500,是否可以将http请求状态设置为200? 我有一个正在运行的任务。当 GAE 抛出 http 请求 500 时,我想在任务结束时手动将其设置为 200,以防止重试任务。
【问题讨论】:
标签: google-app-engine task-queue
返回 200 状态代码的典型模式是将代码包装在 try 和 except 子句之间:
try:
do your stuff
except:
logging.error("Something bad happened")
这个例子捕获所有返回的异常 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 服务后通过电子邮件接收日志报告。
【讨论】: