国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP中實現執行定時任務的方法

2024-05-04 10:59:34
字體:
來源:轉載
供稿:網友

一個很常見的 ASP 問題 : “如何定時工作流程執行網頁?”, 之所以會問這個問題大部分是因為管理員可能會利用一個 ASP 網頁來作數據庫維護的動作, 如備份, 在 Windows NT 平臺有一個方法可以做工作流程, 那就是 AT 指令 + Schedule 服務,就是計劃任務, 但很可惜的是你并沒有法度在命令列 (Command-Line) 執行 ASP 網頁 。

當然你可以在命令列執行 IE 并告訴它要求執行的網頁, 例如:
c:/program files/internet explorer/iexplore.exe http://localhost/mypage.asp,
不過, 這絕對不是大部分的網站管理者所要的方法, 因為這必須要開啟瀏覽器, 花費許多的系統資源, 此外, 還有一個缺點, 那就是執行 ASP 網頁有逾時時間 (Timeout), 如果你要執行許多的流程工作, 你可能要更改 Timeout 時間, 太麻煩了,直接忽視。

在這一篇文章要介紹的是使用 WSH (Windows Scripting Host) 的解決方案。

假設你現在有一個廣告輪撥系統, 你想將檢查廣告到期日這件工作自動化每天凌晨執行, 也就是當一則廣告過期了, 便將其廣告狀態更改為停用, 我們先來看看資料表 AdInfo 字段 。

復制代碼 代碼如下:
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, 展開后會看到這樣的畫面。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三河市| 沙坪坝区| 三穗县| 保定市| 祁东县| 洪雅县| 惠州市| 酒泉市| 平武县| 东莞市| 吴堡县| 香港| 常州市| 富裕县| 河池市| 理塘县| 郧西县| 蓬溪县| 德兴市| 镇赉县| 琼中| 仁寿县| 平顺县| 襄樊市| 惠水县| 策勒县| 乌海市| 铜川市| 军事| 梓潼县| 嘉鱼县| 东明县| 河北省| 且末县| 麻栗坡县| 兴仁县| 安西县| 嘉峪关市| 赤壁市| 文山县| 扶沟县|