1

我们的一个网站有一个小故障,偶尔会导致它崩溃——后端需要重新启动。替代品还没有准备好投入生产,所以我创建了一个 VBS 脚本,它会在以下情况下轮询服务器并重新启动服务器:

a) HTTP 状态代码 <> 200,或 b) 页面加载但在页面上找不到子字符串。

如果tomcat服务响应失败,HTTP状态检查超时;如果发生这种情况,我想调用一个函数。是否可以捕获和处理超时?这是我的相关代码片段的片段。

xmlhttp.setOption 2, 13056
xmlhttp.open "get", "https://www.mywebsite.com/thisurl", false
xmlhttp.send

if xmlhttp.status <> 200 then
    call restartTomcat()
    call emailAlert()
end if

先感谢您。

4

1 回答 1

0

不幸的是,您不能在 VBScript 中创建对象事件处理程序。

也许您可以使用.setTimeouts resolveTimeout, connectTimeout, sendTimeout, receiveTimeoutHTTP Request 对象的方法。在调用send方法之前添加它。以下是参数说明:

解决超时

一个长整数。该值用于将主机名(例如“www.microsoft.com”)映射到 IP 地址;默认值是无限的,意味着没有超时。

连接超时

一个长整数。该值用于与目标服务器建立通信套接字,默认超时值为 60 秒。

发送超时

一个长整数。该值适用于将通信套接字上的单个请求数据包(如果有)发送到目标服务器。发送到服务器的大请求通常会被分解为多个数据包;发送超时适用于单独发送每个数据包。默认值为 30 秒。

接收超时

一个长整数。该值适用于从目标服务器接收响应数据包。大响应将被分解成多个数据包;接收超时适用于从套接字中获取每个数据包。默认值为 30 秒。

您可以在send通话后检查当前状态。这应该可以帮助您处理无响应的服务器。

于 2019-10-08T15:29:15.013 回答