在系統(tǒng)中定期執(zhí)行任務(wù)是一個(gè)常見的功能,那么ASP中實(shí)現(xiàn)執(zhí)行定時(shí)任務(wù)的方法大家都了解嗎?錯(cuò)新技術(shù)頻道小編推薦大家來js.VeVb.com進(jìn)行學(xué)習(xí)哦。
一個(gè)很常見的 ASP 問題 : “如何定時(shí)工作流程執(zhí)行網(wǎng)頁?”, 之所以會(huì)問這個(gè)問題大部分是因?yàn)楣芾韱T可能會(huì)利用一個(gè) ASP 網(wǎng)頁來作數(shù)據(jù)庫維護(hù)的動(dòng)作, 如備份, 在 Windows NT 平臺有一個(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,
不過, 這絕對不是大部分的網(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 字段 。
?
?
接下來看看如何用 WSH, 基本上和 ASP 的寫法是一樣的除了不需加上 ASP 分隔符,不能使用Server.,存盤的擴(kuò)展名為 .vbs 。
由于不是使用 asp.dll , 因此沒有 ASP 的對象模式并不適用,所以這樣寫Server.CreateObject會(huì)報(bào)錯(cuò)。
利用 WSH 作定時(shí)工作流程 :
?
存為 c:/scripts/updateadstatus.vbs,
WSH 有兩個(gè)版本, 一為窗口版 (wscript.exe), 一為命令列版 (cscript.exe),。
在這個(gè)例子我們將使用 (cscript.exe), 你可以在 DOS 命令列下執(zhí)行 :
?
接著你可以到數(shù)據(jù)庫下查詢資料是否更新, 在實(shí)際的應(yīng)用上, 建議你使用批此檔來區(qū)分不同時(shí)段的工作, 好比說我會(huì)創(chuàng)造一支名為 dailytask.bat 的批次檔來執(zhí)行所有的每日例行工作, 如此一來, 我只需將所有每日應(yīng)執(zhí)行的 script 放到這支批次檔即可, 然后利用 AT Command 或是 SQL Server Agent 定時(shí)每日執(zhí)行 dailytask.bat 。
強(qiáng)烈建議使用 SQL Server Agent, 這會(huì)比使用 AT Command 來得有效率且穩(wěn)定!
設(shè)定 SQL Server Agent 你可以執(zhí)行 Enterprise Manager, 展開后會(huì)看到這樣的畫面。
?
下面是數(shù)據(jù)庫的截圖:
以上就是錯(cuò)新技術(shù)頻道小編介紹的ASP中實(shí)現(xiàn)執(zhí)行定時(shí)任務(wù)的方法,希望能幫助到大家學(xué)習(xí),如果想了解更多相關(guān)內(nèi)容可上js.VeVb.com咨詢哦。
新聞熱點(diǎn)
疑難解答
圖片精選