問題文の解決策を見つけようとしています。簡単にするため、アプリケーションはコンソールアプリケーションになります。データベースには約10000行が含まれています。私は10スレッドを生成し、各スレッドはデータベースから5レコードを処理するC#アプリケーションを開発する必要があります。今は、別のマシンで同じアプリケーションを実行します。したがって、アプリケーションのインスタンスが2つあり、各アプリケーションは5000行を処理する必要があり、レコードに重複しないようにしてください。また、私は各アプリケーションで実行されているスレッドIDを表示する必要がある中央コントローラを持つ必要があります。この問題を解決するためのここのポインタは素晴らしいでしょう。分散並列バッチ処理
答えて
DBに「処理ステータス」列を作成し、各インスタンスはレコードのステータスを変更して処理中のレコードをマークします。
もう1つの解決策は、キューまたはService Brokerを使用し、各インスタンスがメッセージを選択して共通キューからレコードを処理することです。ここにキューを移入する別のプロセスが必要です。
WCFを使用して作業を同期させるためにマシン間で通信することは、IMHOが複雑すぎて正しく動作するのは難しいです。
データキーが一様に分散される方法を知っている場合、レコードのIDに基づいてスレッド間でデータセットを分割することもできます。 – nicodemus13
@ nicodemus13 - 良い点。 –
私はJakubに同意します。別々のインスタンスが互いに直接通信するようにするには、Two Generalsの問題(http://en.wikipedia.org/wiki/Two_Generals%27_Problem)を読んで、非ブロッキングをどのように設計するかを考えてくださいレースなしのランデブー。
- 1. 分散アレイによるMatlabの遅い並列処理
- 2. 分散/並列コンピューティング
- 3. Gforth並列処理
- 4. 並列コンピューティング:分散システムとマルチコアプロセッサ
- 5. 「初心者」分散処理プロジェクト
- 6. CPU集約型COMの分散処理
- 7. XSLTバッチ処理
- 8. バッチ処理ループ
- 9. Linuxでの並列処理
- 10. ForkJoinPool並列処理= 1デッドロック
- 11. Javaの並列処理フレームワーク
- 12. OpenCL clEnqueueTasks並列処理
- 13. Javaのループ並列処理
- 14. freeRTOSと並列処理
- 15. Droolsの並列処理
- 16. OpenMPネストループ並列処理
- 17. Scalaのバッチ処理
- 18. 分散コンピューティング/並列処理をどこから始めるのですか? (Python/C)
- 19. 並行処理は並列処理ではありませんか?
- 20. SQLバッチ処理の削除
- 21. バッチ処理のパンデック変換
- 22. Symfony2の - doctrine2バッチ処理
- 23. バッチ処理ビデオ(Matlab) - 問題
- 24. バックボーンjsバッチ処理保存
- 25. QuickCheck 2バッチ処理QuickCheckの
- 26. Facebookのバッチ処理エラー
- 27. symfonyのバッチ処理セキュリティ
- 28. バッチ処理と関数プログラミング
- 29. バッチ処理phpのfgetcsv
- 30. Oracle SOAでのバッチ処理
どのようにマシン間で通信する予定ですか、WCFは合理的な出発点のようです – Jodrell