2011-01-13 364 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