嘿 我遇到以下情況:WinService正在處理隊列中的某些內容,寫入其他表(在處理過程中)以及完成後它刪除條目並移動到下一條。如何確定服務的一個實例已關閉並啓動新實例
我需要一種機制來確定實例是否正在運行,如果不啓動或喚醒第二個實例。
我到目前爲止想過的是有兩個實例,每個嘗試從隊列中拾取東西並處理它(嘗試 - 如看看它是否可以 - 例如沒有設置keepAliveFlag或lastUpdateDate記錄太久以前)。當他們處理相同的記錄時可能會出現這種情況 - 這是缺點。
對於上面提出的這個解決方案,當實例試圖寫一個keepAliveFlag並且不能成功停止時,我還需要一種機制。
除了這個解決方案,還有一個解決方案,讓實例不斷寫入數據到db中,第二個實例檢查是否寫入新東西,如果沒有喚醒或啓動第二個實例。但是可能會出現幾個問題:如果前主人醒來會發生什麼?一般而言,第二種情況似乎難以正確實施。
現在的問題是:什麼纔是正確的模式來實現呢?
我會問一個關於您的數據庫訪問模式的單獨問題 - 上面的標題不會從正確的人獲得關注。這真的是兩個不同的問題,是嗎? – 2010-10-29 13:32:54