2010-06-18 51 views
2

在我的本地開發環境中,當添加到任務隊列的App Engine任務遇到錯誤時,將重試它,直到成功爲止。但是,在生產環境中,事實並非如此。我認爲正在發生的是,因爲我在urls.py中有一個自定義的500處理程序,所有的錯誤都會被這個錯誤所捕獲,並且這個500錯誤永遠不會冒泡到頂部。未引發錯誤的App引擎任務

難道這實際上是我的任務沒有被重試的原因嗎?如果是這樣,有沒有辦法來防止這種情況?如果請求是用戶生成的,而不是後端任務(對於那些,我希望錯誤冒泡並強制重試),我只想讓handler500捕獲錯誤。

回答

5

如果任務返回非200狀態碼,任務將被任務隊列重試。如果您的「自定義500處理程序」返回200狀態代碼,則任務隊列無法知道任務失敗,因此不會重試該任務。您需要修改您的處理程序以返回相應的狀態代碼 - 不管它應該如何操作,包括用戶頁面。