ASP中實(shí)現(xiàn)執(zhí)行定時(shí)任務(wù)的方法
一個(gè)很常見的 ASP 問題 : “如何定時(shí)工作流程執(zhí)行網(wǎng)頁?”, 之所以會(huì)問這個(gè)問題大部分是因?yàn)楣芾韱T可能會(huì)利用一個(gè) ASP 網(wǎng)頁來作數(shù)據(jù)庫維護(hù)的動(dòng)作, 如備份, 在 Windows NT 平臺(tái)有一個(gè)方法可以做工作流程, 那就是 AT 指令 + Schedule 服務(wù),就是計(jì)劃任務(wù), 但很可惜的是你并沒有法度在命令列 (Command-Line) 執(zhí)行 ASP 網(wǎng)頁 。
當(dāng)然你可以在命令列執(zhí)行 IE 并告訴它要求執(zhí)行的網(wǎng)頁, 例如:
c:\program files\internet explorer\iexplore.exe http://localhost/mypage.asp,
不過, 這絕對(duì)不是大部分的網(wǎng)站管理者所要的方法, 因?yàn)檫@必須要開啟瀏覽器, 花費(fèi)許多的系統(tǒng)資源, 此外, 還有一個(gè)缺點(diǎn), 那就是執(zhí)行 ASP 網(wǎng)頁有逾時(shí)時(shí)間 (Timeout), 如果你要執(zhí)行許多的流程工作, 你可能要更改 Timeout 時(shí)間, 太麻煩了,直接忽視。
在這一篇文章要介紹的是使用 WSH (Windows Scripting Host) 的解決方案。
假設(shè)你現(xiàn)在有一個(gè)廣告輪撥系統(tǒng), 你想將檢查廣告到期日這件工作自動(dòng)化每天凌晨執(zhí)行, 也就是當(dāng)一則廣告過期了, 便將其廣告狀態(tài)更改為停用, 我們先來看看資料表 AdInfo 字段 。
AdId 廣告代碼 INT
AdName 廣告名稱 VARCHAR(64)
ValidToDate 廣告到期日 DateTime
AdStatus 廣告狀態(tài) INT (0為停用, 1為進(jìn)行)
接下來看看如何用 WSH, 基本上和 ASP 的寫法是一樣的除了不需加上 ASP 分隔符,不能使用Server.,存盤的擴(kuò)展名為 .vbs 。
由于不是使用 asp.dll , 因此沒有 ASP 的對(duì)象模式并不適用,所以這樣寫Server.CreateObject會(huì)報(bào)錯(cuò)。
利用 WSH 作定時(shí)工作流程 :
'請(qǐng)勿用 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 有兩個(gè)版本, 一為窗口版 (wscript.exe), 一為命令列版 (cscript.exe),。
在這個(gè)例子我們將使用 (cscript.exe), 你可以在 DOS 命令列下執(zhí)行 :
c:\>cscript c:\scripts\updateadstatus.vbs
接著你可以到數(shù)據(jù)庫下查詢資料是否更新, 在實(shí)際的應(yīng)用上, 建議你使用批此檔來區(qū)分不同時(shí)段的工作, 好比說我會(huì)創(chuàng)造一支名為 dailytask.bat 的批次檔來執(zhí)行所有的每日例行工作, 如此一來, 我只需將所有每日應(yīng)執(zhí)行的 script 放到這支批次檔即可, 然后利用 AT Command 或是 SQL Server Agent 定時(shí)每日?qǐng)?zhí)行 dailytask.bat 。
強(qiáng)烈建議使用 SQL Server Agent, 這會(huì)比使用 AT Command 來得有效率且穩(wěn)定!
設(shè)定 SQL Server Agent 你可以執(zhí)行 Enterprise Manager, 展開后會(huì)看到這樣的畫面。
鼠標(biāo)右點(diǎn) Jobs, 選擇 New Job 。
選擇 Step 按 New 。
指定 Step Name , Type 請(qǐng)選擇 Operating System Command, 并設(shè)定執(zhí)行的 Command 。
選擇 Schedule 設(shè)定你的流程。
下面是數(shù)據(jù)庫的截圖:

相關(guān)文章
ASP移動(dòng)文件函數(shù)movefile權(quán)限不足的替代方法
這篇文章主要介紹了ASP移動(dòng)文件函數(shù)movefile權(quán)限不足的替代方法,本文先是介紹了一個(gè)替代方法,后又找出了實(shí)際原因,需要的朋友可以參考下2014-07-07
asp 使用正則表達(dá)式替換word中的標(biāo)簽,轉(zhuǎn)為純文本
asp里使用正則表達(dá)式清除后臺(tái)編輯器里復(fù)制粘貼內(nèi)容的word格式,將其轉(zhuǎn)換成純文本2010-04-04
微信公眾號(hào)可通過現(xiàn)金紅包接口發(fā)放微信支付現(xiàn)金紅包(附開發(fā)教程)
這篇文章主要介紹了微信公眾號(hào)可通過現(xiàn)金紅包接口發(fā)放微信支付現(xiàn)金紅包的相關(guān)資料,需要的朋友可以參考下2016-09-09
asp連接SQL和Access數(shù)據(jù)代碼(asp里的隨機(jī)函數(shù))
asp連接SQL和Access數(shù)據(jù)代碼,asp里的隨機(jī)函數(shù),需要的朋友可以參考下2012-09-09
關(guān)于ASP循環(huán)表格的問題之解答[比較詳細(xì)]
在很多時(shí)候,我們采用原始的方法來解決一行內(nèi)循環(huán)3張圖片,如果上傳者只上傳了2張圖片,那么2張圖片間的距離會(huì)很大,因?yàn)槿鄙倭艘粋€(gè)<td> </td>.2008-11-11
Asp限制IP訪問 阻止某一個(gè)IP段禁止訪問本站的代碼
經(jīng)常有些地方性的B2B或者B2C網(wǎng)站到處都被批量發(fā)布好多垃圾信息,把我的解決辦法分享給大家2011-12-12
asp之自動(dòng)閉合HTML/ubb標(biāo)簽函數(shù) 附簡(jiǎn)單注釋
在用到編輯器時(shí),就會(huì)碰到一點(diǎn),那就是標(biāo)簽的閉合問題,這個(gè)問題非常嚴(yán)峻,因?yàn)檫@可能會(huì)導(dǎo)致網(wǎng)頁顯示的整體樣式受到破壞。2010-04-04
ASP調(diào)用遠(yuǎn)程XML數(shù)據(jù)的代碼(alexa排名數(shù)據(jù))
調(diào)用網(wǎng)易新聞的XML數(shù)據(jù)為例進(jìn)行講解如果通過ASP遠(yuǎn)程調(diào)取XML文件,并讀出數(shù)據(jù)。其實(shí)我們之前就使用了asp讀取alexa官方的數(shù)據(jù)。2011-09-09

