2012-06-02 109 views
0

時,我已經建立了我的Python GAE應用程序,以便我收到一封電子郵件時,請求處理程序會引發異常收到電子郵件錯誤。爲此,我只需將webapp2.RequestHandler分類並覆蓋handle_exception即可向我發送包含相關詳細信息的電子郵件。GAE:使用延遲庫

是否有可能當任務隊列中的任務將引發異常收到一封電子郵件?

編輯:添加更多的細節,因爲我原來的問題不明確。 :)

我給自己發送一封電子郵件,使用下面的代碼請求處理程序異常:

class MyRequestHandler(webapp2.RequestHandler): 
    def handle_exception(self, exception, debug_mode): 
     ... 
     mail.send_mail_to_admins(sender="[email protected]", ...) 
     ... 

這樣,我收到一封電子郵件,通過請求處理程序引發的任何異常。

我也想獲取引起的異常電子郵件時,我提交使用deferred library任務。在這種情況下,我不認爲我可以使用自定義請求處理程序。我想我可以把一個包裝函數週圍的一切我的電話給deferred.defer()

def my_deferred(...): 
    try: 
     deferred.defer(...) 
    except Exception, msg: 
     mail.send_mail_to_admins(sender="[email protected]", ...) 

有沒有更好的方式來做到這一點?

回答

2

任務隊列請求完全相同相同的方式處理與常規的請求,所以你應該能夠使用相同的方法。 (當然,這並不適用於任務隊列沒有把請求提交給你的處理程序的情況,但這應該是非常罕見的,而且我不能告訴你的問題你在日誌中看到了什麼樣的錯誤,希望收到有關電子郵件。更詳細的問題得到更好的答案。:-)

+0

嗨圭多,謝謝你催促我寫一個更好的問題。我已經詳細闡述過了。 –

+0

有沒有更好的方式內置到延期庫或SDK的其他部分,並且我個人不會過時這一點。對於任何規模的網絡應用程序,只要遇到異常情況都會收到電子郵件不起作用 - 您會被電子郵件淹沒。最好偶爾在管理控制檯中查看日誌。另請注意,儀表板上的圖表有一個下拉列表,您可以在過去的幾小時和幾天內看到應用程序的錯誤率。 –

+0

謝謝,我有一個相對較低的流量應用程序,例外可能是一個問題,所以我可以試試這個。 –