2011-01-13 131 views
1

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

+0

你不能只是关闭重试? – Thilo 2011-01-13 07:13:47

回答

3

典型模式返回一个200状态码是包装tryexcept子句之间的代码:

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服务后,通过电子邮件接收日志报告。

+1

使用logging.exception而不是logging.error,因此它将包含堆栈跟踪。 – 2011-01-13 23:26:14