手机版

在ASP中实现定时任务的方法

时间:2021-09-10 来源:互联网 编辑:宝哥软件园 浏览:

一个很常见的ASP问题:“如何通过工作流定期执行网页?”我问这个问题的原因是管理员可能会使用ASP页面进行数据库维护,例如备份。在Windows NT平台上,有一种做工作流的方式,那就是at命令Schedule服务,就是计划任务。不幸的是,您没有在命令行执行ASP页面的方法。

当然,你可以在命令行执行IE,告诉它请求的网页,比如:c3360 \程序文件\ Internet Explorer \ iexplore.exe http://localhost/my page . ASP,但是,这绝对不是大多数网站管理员想要的方法,因为打开浏览器是必须的。花费大量的系统资源,另外还有一个缺点,就是执行ASP页面的时候有一个Timeout。如果要执行大量的流程工作,可能需要更改超时时间,这太麻烦了,不能直接忽略。

在本文中,我们将介绍使用WSH (Windows脚本主机)的解决方案。

假设你现在有一个广告轮换系统,你想每天早上自动检查广告的到期日期,也就是当一个广告到期时,它的广告状态会变成禁用。让我们首先看看数据表的AdInfo字段。

复制代码代码如下: ad ad代码INT ad name ad name VARCHAR(64)validatodate ad到期日期DateTime AdStatus ad状态INT (0为禁用,1为进行中)

接下来,让我们看看如何使用WSH,它与ASP基本相同,只是不需要ASP分隔符,Server。不能使用,文件扩展名为。vbs。

由于没有使用asp.dll,没有ASP的对象模式不适用,所以写Server。以这种方式创建对象将报告错误。

使用WSH作为常规工作流:复制代码如下:“不要使用server . createobject set oConn=createobject(' adodb . connection ')oConn。打开您的连接字符串sSQL='更新AdInfo集AdStatus=0 ' _ '其中ValidToDate=' ' Date ' ' ' oConn。执行(sSQL) oConn。关闭集合oConn=无

另存为c : \ scripts \ updateadstatus . VBS,wsh有两个版本,一个是窗口版本(cscript.exe),另一个是命令行版本(cscript.exe)。

在这个例子中,我们将使用(cscript.exe),您可以在DOS命令行下执行:复制代码如下: c 3360 \ cscript c : \ scripts \ updateadstatus . VBS

然后可以检查数据库下的数据是否更新。在实际应用中,建议您使用这个批处理文件来区分不同时期的工作。例如,我将创建一个名为dailytask.bat的批处理文件来执行所有的日常工作。这样,我只需要把每天应该执行的所有脚本放入这个批处理文件中,然后每天定时使用AT Command或者SQL Server Agent执行dailytask.bat。

强烈建议使用SQL Server代理,它比使用AT命令更高效、更稳定!

设置SQL Server代理。您可以运行企业管理器,展开后会看到此屏幕。复制代码如下:点击鼠标右侧的作业,选择新建作业。选择步骤,然后按新建。要指定步骤名称、类型,请选择操作系统命令并设置要执行的命令。选择“计划”以设置您的流程。

以下是数据库的截图:

版权声明:在ASP中实现定时任务的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。