2011-03-26 76 views

回答

3

創建Windows Service,使在Windows啓動時,建立一個timer它開始,創建一個event用於處理定時器的elapsed event,你是好去。

+1

這種方式矯枉過正,恕我直言。調度程序是一打的。 – 2011-03-26 04:11:31

+1

@Seva可能過度殺傷,但基於@PARTH提供的信息,我明白他想要一個自動化過程。 – vlad 2011-03-26 04:13:31

+0

@vlad:是的,但不能使用web服務完成? – 2011-03-26 04:22:43

0

時間存儲在數據庫中是絕對必要的嗎?通常,他們使用外部調度程序服務(任務計劃程序或SQL代理)。並通過運行帶有服務URL的命令行HTTP客戶端來調用該服務。例如,Curl可以工作,或者您可以使用XMLHTTP調用將快速JavaScript放在一起,並用cscript.exe調用它。另外,如果數據處理可以完全實現爲存儲過程,則不需要Web服務和shell腳本。直接從SQL Agent調用該過程(假定爲MS SQL Server)。

編輯:那麼你已經相當複雜的設計。說,你想要多長時間?你想把時間精確到一分鐘,一小時,一天嗎?如果期望的精確度是幾分鐘內的事情,那麼你可以做什麼。在數據庫中有一個過程。讓它在精度邊界上執行(通過SQL代理) - 比如每5分鐘執行一次。讓它檢查是否現在是運行服務的時間。如果是這樣,請讓它調用服務。 XMLHTTP和OLE自動化可能是要走的路;查看系統過程sp_OACreate,sp_OAMethod。事情是這樣的:sp_OAxxx都認爲,理所當然,非常不安全,有需要相當的權限來運行

declare @o int 
exec sp_OACreate 'Msxml2.XMLHTTP', @o output 
exec sp_OAMethod @o, 'open', @bstrMethod='GET', @bstrUrl='http://what-have-you/' 
exec sp_OAMethod @o, 'send' 

程序。

+0

是的時間將在數據庫中設置。否數據處理不能作爲存儲過程實現。所以我需要一個web服務。那麼我怎麼能使用webservice – 2011-03-26 04:24:50

1

Web服務不適合執行此任務。它們旨在響應請求而運行。您需要運行代碼來響應一天的時間。

我同意創建Windows服務的建議。如果你不想這樣做,那麼創建一個簡單的控制檯應用程序,並通過計劃任務運行它。