2012-01-05 122 views
1

我目前正在研究PHP/MySQl應用程序。如果出現由應用程序無法恢復並且無法繼續執行的錯誤,則會引發500錯誤:通過電子郵件發送錯誤500而不發送垃圾郵件

  • 無法連接到數據庫。
  • 運行的磁盤空間

我想通過電子郵件發送/ smsed如果發生這樣的錯誤。問題是,我不希望每次觸發500錯誤時都通過電子郵件發送郵件。如果網站非常繁忙,那麼在短時間內,您可以輕鬆接收數百封電子郵件或短信。

我想過在發生錯誤時發送電子郵件,然後設置一個標誌,防止在接下來的20分鐘內發送電子郵件。然而這導致另一個問題。如果該標誌存儲在數據庫或文件系統的文件中,則無法連接到數據庫或磁盤空間不足將導致標誌無效。

SMTP服務器發送電子郵件的可能性也可能會降低,但在這種情況下,我認爲任何事情都無法完成,並且需要外部監視服務。

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

回答

1

不,你的解決方案可能是最好的[簡單]選項。但是用一個預先存在的文件來做。在文件系統的某個位置創建它,即使空間用完,它仍然存在。每次發生500錯誤時,使用touch()更新修改時間。如果filemtime()在最後[x]分鐘內,請勿發送電子郵件。

+0

而且沒有理由不能在另一臺服務器上存儲該文件(解決磁盤空間問題),然後使用一個簡單的腳本,你會打電話,然後檢查其響應... 1 =發送電子郵件,0 =不要發送電子郵件。 – NightHawk 2012-01-05 03:30:32

+0

@瑞恩,我很困惑。只要狀態文件在空間填滿之前就存在,它就不應該成爲問題。 – benesch 2012-01-05 03:34:35

+0

是的,你絕對正確,這只是另一種選擇。 – NightHawk 2012-01-05 03:37:54

0

不附屬或任何東西,但Pingdom可能會幫助你。

相關問題