ASP中实现执行定时任务的方法
一个很常见的 ASP 问题 : “如何定时工作流程执行网页"codetitle">复制代码 代码如下:
AdId 广告代码 INT
AdName 广告名称 VARCHAR(64)
ValidToDate 广告到期日 DateTime
AdStatus 广告状态 INT (0为停用, 1为进行)
接下来看看如何用 WSH, 基本上和 ASP 的写法是一样的除了不需加上 ASP 分隔符,不能使用Server.,存盘的扩展名为 .vbs 。
由于不是使用 asp.dll , 因此没有 ASP 的对象模式并不适用,所以这样写Server.CreateObject会报错。
利用 WSH 作定时工作流程 :
复制代码 代码如下:
'请勿用 Server.CreateObject
Set oConn = CreateObject("Adodb.Connection")
oConn.Open YourConnString
sSQL = "update AdInfo set AdStatus=0 " _
& "where ValidToDate< ='" & Date & "'"
oConn.Execute(sSQL)
oConn.Close
Set oConn = Nothing
存为 c:\scripts\updateadstatus.vbs,
WSH 有两个版本, 一为窗口版 (wscript.exe), 一为命令列版 (cscript.exe),。
在这个例子我们将使用 (cscript.exe), 你可以在 DOS 命令列下执行 :
复制代码 代码如下:
c:\>cscript c:\scripts\updateadstatus.vbs
接着你可以到数据库下查询资料是否更新, 在实际的应用上, 建议你使用批此档来区分不同时段的工作, 好比说我会创造一支名为 dailytask.bat 的批次档来执行所有的每日例行工作, 如此一来, 我只需将所有每日应执行的 script 放到这支批次档即可, 然后利用 AT Command 或是 SQL Server Agent 定时每日执行 dailytask.bat 。
强烈建议使用 SQL Server Agent, 这会比使用 AT Command 来得有效率且稳定!
设定 SQL Server Agent 你可以执行 Enterprise Manager, 展开后会看到这样的画面。
复制代码 代码如下:
鼠标右点 Jobs, 选择 New Job 。
选择 Step 按 New 。
指定 Step Name , Type 请选择 Operating System Command, 并设定执行的 Command 。
选择 Schedule 设定你的流程。
下面是数据库的截图:
下一篇:ASP的Server.MapPath()不同参数返回路径总结