我想弄清楚問題陳述的解決方案。爲了簡單起見,應用程序將成爲控制檯應用程序。一個數據庫包含大約10000行。我有一個開發一個C#應用程序,它將產生10個線程,每個線程將從數據庫處理5條記錄。現在的事情是我將在另一臺機器上運行相同的應用程序。所以我們有兩個應用程序實例,每個應用程序應該處理5000行,並且它們不應該在記錄上重疊。另外我需要一箇中央控制器,它需要顯示每個應用程序上運行的線程ID。任何在這裏解決這個問題的指針都會很棒。分佈式並行批處理
Q
分佈式並行批處理
0
A
回答
3
我會在數據庫中創建一個「處理狀態」列,每個實例將通過更改記錄的狀態來標記正在處理的記錄。
另一種解決方案是使用隊列或Service Broker,並且每個實例將挑選消息來處理來自公共隊列的記錄。您將需要另一個進程來填充隊列。
使用WCF在機器之間進行通信以同步工作是恕我直言,太複雜和棘手以至於無法正常工作。
+0
如果他/她知道數據密鑰是如何均勻分佈的,他們還可以根據記錄的id在線程之間對數據集進行分區。 – nicodemus13
+0
@ nicodemus13 - 好點。 –
2
我同意Jakub。如果你希望單獨的實例直接相互通信,你應該閱讀關於兩個常規問題(http://en.wikipedia.org/wiki/Two_Generals%27_Problem),並考慮你將如何設計一個非阻塞沒有比賽的會合。
相關問題
- 1. 彈簧批處理 - 並行處理
- 2. Spring批處理並行處理
- 3. Matlab與分佈式陣列的緩慢並行處理
- 4. 合併或分批處理HTML解析
- 5. 如何使用Spring批處理實現步驟的分佈式處理
- 6. 在分佈式Tensorflow中批量處理數據
- 7. Spring批處理不會在並行模式下執行流。
- 8. Spring批處理並行Tasklet(s)
- 9. 等待並行批處理腳本
- 10. 並行化批處理應用程序
- 11. 並行的linux批處理作業
- 12. 並行處理分支
- 13. 閱讀分批CSV數據並對其進行處理
- 14. 運行Matlab的批處理模式
- 15. SAS運行批處理模式問題
- 16. 分佈式/並行計算
- 17. Azure批處理microtask並行處理(修改任務隊列)
- 18. 從哪裏開始進行分佈式計算/並行處理? (Python/C)
- 19. 如何分批處理PHP?
- 20. 如何分批處理IEnumerable?
- 21. 批量創建一個分隔批處理文件並在內部執行它
- 22. 如何分別處理Kafka分區並與Spark執行程序並行處理?
- 23. 分解CSV中的大量行,並以批處理的方式處理它們php
- 24. erlang如何處理分佈式網絡?
- 25. Spring雲數據流分佈式處理
- 26. 分佈式處理的不同場景
- 27. Java:非分佈式事件處理
- 28. 在Hadoop中分佈式處理JSON
- 29. PostgreSQL表的分佈式處理
- 30. 分佈式事務處理協調器
你打算如何在機器之間進行通信,WCF看起來像是一個明智的起點 – Jodrell