定时任务,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和思归的帮助。
这个程序可以是简单的批处理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和思归的帮助。
相关文章推荐
- 定时任务,js版本
- Node.js node-schedule定时任务隔多少分钟执行一次的方法
- SpringMVC整合Quartz实现定时任务和Crontrigger时间配置和版本问题
- Spring 3.0以后版本的定时任务
- Node.js之定时任务 node作业--node-schedule
- 利用Js和计划任务定时处理
- node.js定时任务:node-schedule的使用
- node.js定时任务:node-schedule的使用
- Sping3.0版本+Quartz完成定时任务
- js实现定时任务,每隔N秒请求后台
- js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台
- node.js定时任务 node-schedule
- js-定时任务setInterval,setTimeout,clearInterval,clearTimeout
- JS的多种提示框、定时器、定时任务
- js控制定时任务的执行与停止
- Node.js node-schedule定时任务隔多少分钟执行一次的方法
- js 定时任务优化
- 在Django项目中使用djcelery model api创建和更新定时任务--实际使用版本
- 使用NODEJS+REDIS开发一个消息队列以及定时任务处理
- Spring 3.0以后版本的定时任务