当Coldfusion CFQUERY时间限制超过

时间:2017-10-16 13:32:20

标签: coldfusion request timeout notify cfquery

今天早上,我们的Amazon EC2 Windows服务器几乎没有响应,间歇性地丢失了500个错误。在CF日志中,我看到了一堆这些错误:

The request has exceeded the allowable time limit Tag: CFQUERY 

重启服务器后,一切恢复正常。

在我查找根本原因的同时,是否可以将CF管理员配置为在某个日志文件错误开始连续多次出现时发送电子邮件,例如这个?我们已经为EC2上的中断配置了健康状况检查,但它们从未触发过,因为服务器仍在运行,速度非常慢。我想成为这种情况的第一个响应者,但不知道,因为我没有主动监视服务器发生时 - 用户必须在几个小时后提醒我这个问题,这对我来说很尴尬

提前致谢!

2 个答案:

答案 0 :(得分:2)

不知道这是否是最佳做法,但我所做的是利用string.gsub(/([(),])/, '') #=> "Workshop Corporate October 2017" 中的OnError函数报告未处理的错误。

application.cfc

您显然可以过滤到要报告的错误类型。

如果您只是想特别检查功能(发生超时的地方),那么您应该使用:

<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>

答案 1 :(得分:0)

查询超时不是不堪重负的服务器的唯一来源。你可能想要更全面的东西。

您可以在CF Administrator应用程序上执行的操作是使用警报配置。这不仅允许您在满足某些条件时通知自己,而且还可以杀死有问题的线程。

除此之外,我们还要做的是在我们的开发服务器上安排脚本,以便在一秒钟超时的情况下向生产服务器尝试http请求。如果尝试失败,邮件将被发送给人员,寻呼机和手机。