您的位置:首页 > Web前端 > JavaScript

定时任务,js版本

2008-09-07 16:56 204 查看
作定时处理的话,我们首先考虑到的就是自己写个程序,然后把这个程序部署到Win的计划任务中。

这个程序可以是简单的批处理dat文件,也可以是一个js文件。当然更复杂的dll,exe也可以。

考虑到方便性,易维护,我推荐用js文件。

下面是个简单的js范例文件。

他的功能是:访问一个页面,如果发现这个页面异常重起iis服务。

把它部署到计划任务中,就可以对Web站点进行监控。

if(!CheckUrl())

{

WScript.Echo("iisreset");

var s = new ActiveXObject("WScript.Shell");

s.Run("iisreset");

}

else

{

WScript.Echo("OK");

}

function CheckUrl()

{

try

{

   var xh=new ActiveXObject("Microsoft.XMLHTTP");

   xh.open("GET","http://localhost/quickstart/aspplus/doc/businessobjs.aspx",false);

   xh.send("");

   return xh.status == 200;

}

catch( X )

{

   return false;

}

}

以上使用 Microsoft.XMLHTTP   如果一个站点没有响应,他会一直等下去。改成   MsXML2.ServerXMLHTTP   就可以避免这个问题。参考下面函数:

function CheckUrl()

{

try

{

   // 使用这个,可以设置超时时间,不用一直等待。

   var XMLServerHttp = new ActiveXObject("MsXML2.ServerXMLHTTP");

   var lResolve = 5 * 1000;

   var lConnect = 5 * 1000;

   var lSend = 15 * 1000;

   var lReceive = 15 * 1000;

   XMLServerHttp.setTimeouts(lResolve, lConnect, lSend, lReceive);

   XMLServerHttp.open("GET", "http://localhost/quickstart/aspplus/doc/businessobjs.aspx", false);

   XMLServerHttp.send();

   return XMLServerHttp.status == 200;  

}

catch( X )

{

   return false;

}

}

如果你要访问的页面是需要身份验证的。

请参考:

oXMLHttpRequest.open(Method, Url, Async, User, Password)

http://www.w3schools.com/dom/dom_http.asp

以上解决方案,感谢Lostinnet和思归的帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: