超过 Coldfusion CFQUERY 时间限制时收到电子邮件提醒
Receive email alert when Coldfusion CFQUERY time limit exceeded
今天早上我们的 Amazon EC2 Windows 服务器几乎没有响应,间歇性地抛出 500 个错误。在 CF 日志中,我看到了一堆这样的错误:
The request has exceeded the allowable time limit Tag: CFQUERY
重启服务器后,一切恢复正常
虽然我正在寻找这个问题的根本原因,但是否可以将 CF Admin 配置为在某个日志文件错误开始连续多次出现时发送电子邮件,就像这一次一样?我们已经为 EC2 上的中断配置了健康状态检查,但它们从未触发,因为服务器仍然 运行,速度非常慢。我想成为这种情况的第一响应者但不知道,因为当它发生时我没有主动监控服务器 - 几个小时后用户不得不提醒我这个问题,这让我很尴尬.
提前致谢!
不知道这是否是最佳实践,但我所做的是利用 application.cfc
中的 OnError
函数来报告未处理的错误。
<cffunction name="onError" returnType="void" hint="Runs when an uncaught exception occurs in the application.">
<cfargument name="Exception" required=true/>
<cfargument name="EventName" type="String" required=true/>
<cfmail to="myemail@mydomain.edu" from="myemail@mydomain.edu" subject="Error Alert" type="html">
<cfdump var="#session#">
<cfdump var="#CGI#">
<cfdump var="#Exception#">
</cfmail>
</cffunction>
您显然可以过滤出您想要报告的错误类型。
如果你只想在函数中专门检查(超时发生的地方),那么你应该使用:
<cffunction name="yourfunction">
<cftry>
...
<cfcatch>
<cfmail to="myemail@mydomain.edu" from="myemail@mydomain.edu" subject="Error:yourfunction">
<cfdump var="#session#">
<cfdump var="#CGI#">
<cfdump var="#cfcatch#">
</cfcatch>
</cftry>
<cffunction>
查询超时并不是服务器不堪重负的唯一来源。您可能想要更全球化的东西。
您可以在 CF Administrator 应用程序上执行的操作是使用警报配置。这不仅可以让您在满足某些条件时通知自己,还可以杀死有问题的线程。
除此之外,我们所做的是在我们的开发服务器上安排一个脚本,以尝试向生产服务器发出 1 秒超时的 http 请求。如果尝试失败,邮件将发送给其他人、寻呼机和手机。
今天早上我们的 Amazon EC2 Windows 服务器几乎没有响应,间歇性地抛出 500 个错误。在 CF 日志中,我看到了一堆这样的错误:
The request has exceeded the allowable time limit Tag: CFQUERY
重启服务器后,一切恢复正常
虽然我正在寻找这个问题的根本原因,但是否可以将 CF Admin 配置为在某个日志文件错误开始连续多次出现时发送电子邮件,就像这一次一样?我们已经为 EC2 上的中断配置了健康状态检查,但它们从未触发,因为服务器仍然 运行,速度非常慢。我想成为这种情况的第一响应者但不知道,因为当它发生时我没有主动监控服务器 - 几个小时后用户不得不提醒我这个问题,这让我很尴尬.
提前致谢!
不知道这是否是最佳实践,但我所做的是利用 application.cfc
中的 OnError
函数来报告未处理的错误。
<cffunction name="onError" returnType="void" hint="Runs when an uncaught exception occurs in the application.">
<cfargument name="Exception" required=true/>
<cfargument name="EventName" type="String" required=true/>
<cfmail to="myemail@mydomain.edu" from="myemail@mydomain.edu" subject="Error Alert" type="html">
<cfdump var="#session#">
<cfdump var="#CGI#">
<cfdump var="#Exception#">
</cfmail>
</cffunction>
您显然可以过滤出您想要报告的错误类型。
如果你只想在函数中专门检查(超时发生的地方),那么你应该使用:
<cffunction name="yourfunction">
<cftry>
...
<cfcatch>
<cfmail to="myemail@mydomain.edu" from="myemail@mydomain.edu" subject="Error:yourfunction">
<cfdump var="#session#">
<cfdump var="#CGI#">
<cfdump var="#cfcatch#">
</cfcatch>
</cftry>
<cffunction>
查询超时并不是服务器不堪重负的唯一来源。您可能想要更全球化的东西。
您可以在 CF Administrator 应用程序上执行的操作是使用警报配置。这不仅可以让您在满足某些条件时通知自己,还可以杀死有问题的线程。
除此之外,我们所做的是在我们的开发服务器上安排一个脚本,以尝试向生产服务器发出 1 秒超时的 http 请求。如果尝试失败,邮件将发送给其他人、寻呼机和手机。