我们的环境中有一个开发框,很快将转移到生产环境。它是用经典的asp编写的。作为灾难恢复计划的一部分,其中一项任务是确保在加载页面时出现问题,以通知站点管理员。我知道如何发送通知,因为我们有一个用于发送通信的邮件处理器,但我正在寻找有关如何做类似IF语句的帮助,如果页面还没有在x秒内完成加载,通过电子邮件发送站点管理员并继续加载页面,直到它完成加载或超时。同样,我们现在没有任何问题,但如果有任何未来的问题,我们需要有一些东西。同样,这是在经典的asp。
中完成的这是一个例子(30秒加载):
{{1}}
这样的事情是否有效甚至可能?
我们在服务器上使用IIS7
提前感谢您的帮助。
更新 - 只是添加。如果我们的某个数据库连接存在连接问题,我们已经准备好启动页面和通知。它验证连接,然后执行测试查询。如果其中任何一个失败,它将为站点管理员提供更新。我想为页面加载时间提供类似的选项。我已经有一个脚本超时,但不确定脚本超时是否可以使用if语句在触发超时之前经过x秒后执行某些操作。
答案 0 :(得分:1)
最好的方法是启用IIS日志记录并确保启用以毫秒记录的time-taken
。
现在,您可以创建程序或日志解析器来监视IIS日志,也可以使用IIS日志监控软件,如果时间超过30000毫秒,只需将警报设置为页面输出。
有很多工具可以做到这一点,只需搜索一个适合您需求的工具。
在代码本身中执行此操作,如果超时,则您将永远不会收到警报,因此我不认为这是您正在寻找的选项。
答案 1 :(得分:1)
某些网站使用的一个选项是让其他应用程序定期在着陆页上执行GET,如果无法加载或需要很长时间才能发送提醒。
有很多第三方服务提供此服务,搜索“页面可用性测试”,或者如果您想要内部服务,那么写起来就不那么难了。但关键是它必须是IIS服务器的外部。
答案 2 :(得分:0)
我想我可能已经想到了这一点。如果您愿意,请提供您的反馈意见。
'Beginning of the page`
Starttime = Timer()
Do Until i=5382343
i=i+1
Loop
'Body of the page here
'at the bottom, type this in
TimeTest = (Timer - Starttime)
If TimeTest > 30.500000 Then
response.write "SLOW, Admins Notified"
Else
response.write "FAST"
End If
Response.Write("<br>The page was generated in : " & (Timer - Starttime) & " seconds.")