首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止网站遇到错误时自动生成电子邮件的可能洪流的技术

防止网站遇到错误时自动生成电子邮件的可能洪流的技术
EN

Stack Overflow用户
提问于 2009-02-11 02:54:44
回答 3查看 281关注 0票数 2

对于我当前的web开发项目,我正在实现一个后端系统,它将标记错误并自动向管理员发送一封电子邮件,其中包含有关发生的详细信息。捕获错误并使用适当的错误信息生成电子邮件是非常直接的;但是,如果考虑到某些错误类型,特别是当网站经常被访问时,就会出现问题。

考虑以下几个例子:

  1. 一种意外的数据库中断,它阻止web服务器上的所有脚本能够连接。如果数据库服务器恢复联机需要2分钟(120秒),而web服务器正以每秒10秒的速度接收唯一的请求,那么在数据库服务器恢复联机的时间内,管理员的电子邮件将被1200封相同的电子邮件淹没,这些邮件都是关于数据库连接失败的尖叫。
  2. 某个脚本中的一个bug设法通过测试偷偷地运行,并且是各种各样的错误,它完全破坏了内容的生成,并且只在特定的情况下发生(例如每100次请求一次)。再次使用10 /秒的唯一请求速率意味着管理员将每10秒收到相同的电子邮件,直到它被修复为止。

,我可以使用哪些方法/策略来防止这种情况的发生?(我只对监视脚本生成的错误感兴趣,基础设施问题超出了此解决方案的范围)

我将假设我几乎总是可以使用传递给处理程序设置的错误处理程序回调的一些值的摘要来唯一地识别错误。

第一个也可能是最明显的解决方案是记录在数据库中,只有在电子邮件发生后至少有一段合理的时间才发送电子邮件。这不是理想的方法,尤其是当数据库导致问题时。另一种解决方案是在发生错误时将文件写入磁盘,并检查自上次修改文件以来是否已经过了合理的最短时间。,除了我描述的两种方法之外,还有什么机制可以解决这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2009-02-11 03:00:41

为什么不简单地允许它们全部发送出去,然后收集并存储在接收端的数据库中。这样,您就可以绕过数据库成为服务器中问题的可能性。

而且,在我看来,一个更大的优势是,你不会任意丢弃有价值的法医数据。后特别分析是非常重要的,任何类型的过滤都会使它变得非常困难,甚至是不可能的。

票数 2
EN

Stack Overflow用户

发布于 2009-02-11 02:59:02

你试过查看像SiteScope这样的监控软件吗?

票数 1
EN

Stack Overflow用户

发布于 2009-02-11 04:17:16

我所做的是监视错误日志,每5分钟发送一次摘要。我想这是因为我的高质量代码(相对于一个不受欢迎的应用程序!),但我并没有太多的麻烦:P -我基本上是从头到尾读取日志文件,解析错误消息,当时间戳<我上次运行作业时停止,然后发送一封简单的电子邮件。

这个效果够好的。但是,如果您使用POST,您可以从将apache访问日志与您的php错误日志关联起来获得有限的信息。我记得我读过一个模块,可以在apache中将帖子记录到文件中,但不记得具体的内容。

但是,如果您愿意使用错误处理程序编写某个地方,这可能是最好的,因为您可以访问更多的信息。ip、会话id (以及任何可能影响设置的用户信息,如分页或其他设置)、函数参数(debug_backtrace或其他任何内容).写每一个错误,只要在新的错误发生时发送消息,或者在错误被确认之后(如果你想写这样的系统)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/535240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档