2013-01-22 34 views
0

我開發了一個WCF Web服務,它的一個方法是在數據庫中創建一個新條目,並且還改變了不同表中的條目的狀態。我應該使用工作者角色還是線程來重置數據庫中條目的狀態?

我想達到的目的是在一小時後重置狀態改變。聽到這個例子,所以你可以理解我在做什麼:

設備可以檢測作爲事件報告的更改,所以設備與各種事件相關,並且事件僅與一個設備相關。當新事件插入數據庫時​​,設備進入警報狀態,因此該設備的狀態列更改爲警報,經過1小時後,該設備的狀態列必須返回到正常

我想創建一個線程,但我是新來的WCF,所以我不知道是否會消耗大量的資源,所以我想使用一個工作者角色,但是這也始終保持運行服務已經結束。充其量,我想把任何處理這個問題的進程置於睡眠狀態,直到Device的狀態再次發生變化,但是我不知道是否有睡眠線程/輔助角色會佔用大量資源。

如何在不使用太多資源的情況下實現這種行爲?

回答

1

不要使用線程 - 如果應用程序需要關閉(部署,錯誤...),則線程將丟失,並且在其上排隊等待工作。使用持久計時器服務,如Windows任務計劃程序或類似Quartz.NET的庫。

+0

Quart.NET正是我期待的,謝謝。 –

相關問題