2012-01-05 120 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可能会帮助你。

相关问题