Google app engine 谷歌应用引擎请求状态
即使系统抛出500,是否可以将http请求状态设置为200?Google app engine 谷歌应用引擎请求状态,google-app-engine,task-queue,Google App Engine,Task Queue,即使系统抛出500,是否可以将http请求状态设置为200? 我有一个正在运行的任务。当GAE抛出http请求500时,我想在任务结束时手动将其设置为200,以防止任务被重试 返回200状态代码的典型模式是将代码包装在try和之间,但子句除外: try: do your stuff except: logging.error("Something bad happened") 此示例捕获始终返回200状态代码的所有异常,在您的应用程序中,您可能希望添加要捕获的适当异常列表;
我有一个正在运行的任务。当GAE抛出http请求500时,我想在任务结束时手动将其设置为200,以防止任务被重试 返回200状态代码的典型模式是将代码包装在
try
和之间,但
子句除外:
try:
do your stuff
except:
logging.error("Something bad happened")
此示例捕获始终返回200状态代码的所有异常,在您的应用程序中,您可能希望添加要捕获的适当异常列表;对于某些类型的瞬态异常,正确的做法是引发一个500错误,该错误隐式地告诉AppEngine再次尝试该任务
编辑:
正如正确建议的那样,您应该使用logging.exception
而不是logging.error
将堆栈跟踪包含在日志中
try:
do your stuff
except:
logging.exception("Something bad happened") #It will log the stacktrace too
这还有第二个好处,它允许您在启用服务后通过电子邮件接收日志报告。您是否可以关闭重试?请使用logging.exception而不是logging.error,这样它将包含stacktrace。如果您有时间,我想看一个使用logging.exception将stacktrace包含在日志中的代码示例。