[英]c# parallelism multiple tasks
我想實現以下目標:
創建一堆mongo查詢
對於每個查詢,將反序列化的mongo數據集獲取為ObjectA
地圖的所有ObjectA
以列表ObjectB
(需要給予一定的時間,我們正在與幾百萬對象時)
當映射完成,upserts所有ObjectB
(中環),以一個新的蒙戈DB / collection(也需要一些時間),並開始讀取/映射下一個數據的下一個查詢設定
如果下一個映射是在最后一個mongo upsert完成之前完成的,請等待它完成,然后開始將該數據集寫入mongo
現在,我一直在玩Task
,我認為這是可行的方法,但是我很難做到這一點。
我應該運行2組任務嗎?
如何在“獲取/映射任務”和“寫入mongo任務”之間創建“依賴關系”?
任何幫助表示贊賞,謝謝!
看看數據流http://msdn.microsoft.com/en-us/library/hh228603(v=vs.110).aspx
您可以為過程的每個階段創建一個塊,然后將它們鏈接在一起。
那么您可以將唯一查詢數據循環發布到數據流中,並根據需要設置並行性。 例如,只要您沒有內存問題,就提高階段1和階段2的並行性,但是使階段3不並行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.