即使系统抛出500,是否可以将http请求状态设置为200? 我有一个正在运行的任务。当GAE抛出http请求500时,我想在任务结束时手动将其设置为200,以防止重试任务。
答案 0 :(得分:3)
返回 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服务后通过电子邮件接收日志报告。