這可能不適合在這裏,如果是這樣,請隨時移動,呼喊或濫用。處理許多任務,多次與任務並行
我們目前有一個控制檯應用程序,由另一個開始並傳入一個「作業」ID,這個作業將有多個需要處理的記錄。流程的簡單解釋是;
Starts 50 threads
Gets records to be processed.
if records > 0 see what threads are not still busy and send it some information.
if records = 0 update something else and exit.
Get more records.
Loop.
現在,我正在尋找轉換成一個'輪詢'服務,不斷運行,當新記錄可用,處理它們。採取我擁有的東西並將其轉換成相當簡單,但線程的東西是舊的,可能過時了。
我正在尋找重構大部分,如果不是全部,並使用Task.Parallel來處理項目。然而,我正在努力爭取一個合適的輪詢框架,然後處理這些項目,並正在尋求如何實現這一目標的建議。
我非常模糊,但希望能給出某種意見。
非常感謝
你能描述這些記錄來自哪裏嗎?他們被添加到數據庫? – 2012-04-25 14:06:24
目前他們是名單,但是他們最終來自DB。它們分批加載併發送到線程池。一旦在該批次中沒有剩下可處理的東西,我們會檢查更多。 –
ChrisBint
2012-04-25 14:08:37
這是說話的sql服務器? – 2012-04-25 14:10:50