0
我打算使用.net Web服務批量處理數據庫記錄。 Web服務請求從SQL Server代理每分鐘調用一次的SQL Server存儲過程進入。我只希望一次批量運行,因爲這裏的要點是避免過載服務器。如何序列化.net Web服務的處理?
是否有序列化請求的好方法,或者如果已經有一個請求被拒絕請求?
我正在考慮讓Web服務實例在數據庫中寫入一個標誌,以便後續Web服務實例在啓動時可以讀取。如果它已經設置了,那麼Web服務將不做任何事情而返回。一個安全防範可能是,如果它已經設置了十分鐘,例如自設置了該標誌,那麼設置該標誌的Web服務實例將被認爲失敗。
有什麼想法?
乾杯,伊恩。
感謝您的回覆安德魯。我一直在閱讀你提到的另外兩種選擇。 Windows服務有點低級,需要實施調度,這是重新發明輪子的情況,而Windows任務計劃程序聽起來不可靠並且可能導致CMD窗口彈出。是的,我的計劃最終將從數據庫轉到Web服務,然後再回來,但數據庫的初始使用僅僅是爲了它的調度功能,所以我認爲這是一個紅鯡魚! – 2011-04-12 09:46:41
我不認爲使用靜態屬性可以在Web場景中工作。在每臺機器上不會有一個值的副本?事實上,我會懷疑靜態在單個機器上甚至是唯一的。並不是說這是基於很多! :) – 2011-04-12 09:48:40
但這就是我的意思;爲什麼數據庫只是爲了解決某些問題,而這正是Task Scheduler的用途。這並不是不可靠的,沒有理由必須打開一個命令窗口;它可以運行一個沒有專門用於這種事情的接口的進程,它可以以比你需要的複雜得多的方式來管理以前運行的實例。 – 2011-04-12 09:50:03