私の要件はこのようなものです。ユーザーが複数の xml ファイルを配置する中央リポジトリがあり、ディレクトリ ウォッチャー サービス (単純な Java クラス) が xml ファイルを取得して処理します。
このシナリオでは、どのように並行処理を行うことができますか? 1 つずつ xml 処理を行うべきか、それとも並行処理を行うべきか?
通常、実際のプロジェクトではどのアプローチをとるべきですか?
私の要件はこのようなものです。ユーザーが複数の xml ファイルを配置する中央リポジトリがあり、ディレクトリ ウォッチャー サービス (単純な Java クラス) が xml ファイルを取得して処理します。
このシナリオでは、どのように並行処理を行うことができますか? 1 つずつ xml 処理を行うべきか、それとも並行処理を行うべきか?
通常、実際のプロジェクトではどのアプローチをとるべきですか?
このシナリオでは、同じくらい高価なデータで何かをしていない限り (別のサービスと話しているなど)、はるかに大きなコストは IO になります。
ロードされた (メモリ内の) ファイルを実際にロードするよりも速く処理しているため、多くのスレッドが生成され、それらのほとんどが何もしないことに気付く場合があります。
実際にこれを最初に行う必要があるかどうか、並行アプローチを実装することで実際に何かが得られるかどうかを確認することをお勧めします。スループットに関して意味のあるものは何も得られないことに気付くかもしれませんが、コードがさらに複雑になります。
このシナリオでは、どのように並行処理を行うことができますか?
ディレクトリ ウォッチャー サービスは、新しいファイルを選択して、複数のスレッドがファイルを取得し、必要に応じて処理するキューに配置できます。
xml を 1 つずつ処理するか、並行処理するか。
これは、処理をどれだけ迅速に完了させたいか、およびその他の要因によって異なります。たとえば、処理全体が個別に行われるか、または処理が他の既存のファイルにアクセスする必要があるか、ある時点で他のリソースを待つ必要がありますか?
通常、ライブ プロジェクトではどのアプローチをとるべきですか?
同時処理は高速になる可能性がありますが、もう少し多くのメモリが必要になる場合があります