- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > ASP >
- ASP中實(shí)現執行定時(shí)任務(wù)的方法
一個(gè)很常見(jiàn)的 ASP 問(wèn)題 : “如何定時(shí)工作流程執行網(wǎng)頁(yè)?”, 之所以會(huì )問(wèn)這個(gè)問(wèn)題大部分是因為管理員可能會(huì )利用一個(gè) ASP 網(wǎng)頁(yè)來(lái)作數據庫維護的動(dòng)作, 如備份, 在 Windows NT 平臺有一個(gè)方法可以做工作流程, 那就是 AT 指令 + Schedule 服務(wù),就是計劃任務(wù), 但很可惜的是你并沒(méi)有法度在命令列 (Command-Line) 執行 ASP 網(wǎng)頁(yè) 。
當然你可以在命令列執行 IE 并告訴它要求執行的網(wǎng)頁(yè), 例如:
c:\program files\internet explorer\iexplore.exe http://localhost/mypage.asp,
不過(guò), 這絕對不是大部分的網(wǎng)站管理者所要的方法, 因為這必須要開(kāi)啟瀏覽器, 花費許多的系統資源, 此外, 還有一個(gè)缺點(diǎn), 那就是執行 ASP 網(wǎng)頁(yè)有逾時(shí)時(shí)間 (Timeout), 如果你要執行許多的流程工作, 你可能要更改 Timeout 時(shí)間, 太麻煩了,直接忽視。
在這一篇文章要介紹的是使用 WSH (Windows Scripting Host) 的解決方案。
假設你現在有一個(gè)廣告輪撥系統, 你想將檢查廣告到期日這件工作自動(dòng)化每天凌晨執行, 也就是當一則廣告過(guò)期了, 便將其廣告狀態(tài)更改為停用, 我們先來(lái)看看資料表 AdInfo 字段 。
代碼如下:
AdId 廣告代碼 INT
AdName 廣告名稱(chēng) VARCHAR(64)
ValidToDate 廣告到期日 DateTime
AdStatus 廣告狀態(tài) INT (0為停用, 1為進(jìn)行)
接下來(lái)看看如何用 WSH, 基本上和 ASP 的寫(xiě)法是一樣的除了不需加上 ASP 分隔符,不能使用Server.,存盤(pán)的擴展名為 .vbs 。
由于不是使用 asp.dll , 因此沒(méi)有 ASP 的對象模式并不適用,所以這樣寫(xiě)Server.CreateObject會(huì )報錯。
利用 WSH 作定時(shí)工作流程 :
代碼如下:
'請勿用 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 命令列下執行 :
代碼如下:
c:\>cscript c:\scripts\updateadstatus.vbs
接著(zhù)你可以到數據庫下查詢(xún)資料是否更新, 在實(shí)際的應用上, 建議你使用批此檔來(lái)區分不同時(shí)段的工作, 好比說(shuō)我會(huì )創(chuàng )造一支名為 dailytask.bat 的批次檔來(lái)執行所有的每日例行工作, 如此一來(lái), 我只需將所有每日應執行的 script 放到這支批次檔即可, 然后利用 AT Command 或是 SQL Server Agent 定時(shí)每日執行 dailytask.bat 。
強烈建議使用 SQL Server Agent, 這會(huì )比使用 AT Command 來(lái)得有效率且穩定!
設定 SQL Server Agent 你可以執行 Enterprise Manager, 展開(kāi)后會(huì )看到這樣的畫(huà)面。
代碼如下:
鼠標右點(diǎn) Jobs, 選擇 New Job 。
選擇 Step 按 New 。
指定 Step Name , Type 請選擇 Operating System Command, 并設定執行的 Command 。
選擇 Schedule 設定你的流程。
下面是數據庫的截圖:
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站