サーバークライアントアプリケーションはhttp/xmlを介して通信します。サーバーは、番号またはチャンクIDを含むxmlファイルを送信します。クライアントは、予想よりも高いチャンクIDのxmlを受け取ることがあります。順序が重要なので、キューに入れる必要があります。を使用しTreeMap<Integer, Document>
て、予想されるチャンクIDでxmlが受信されるまで、xmlをマップに追加できるようにします。xmlがサーバーによって送信されたが、クライアントによってより新しく受信された可能性もあります。send-and-forgetのため、サーバーはこれを認識しません。だから私の質問は、この問題にどのように対処するかです。アーキテクチャをリファクタリングする必要がありますか?これにはパターンがありますか?
例
expected chunk id / real chunk id
0 0 eval
1 3 add to queue
2 4 add to queue
3 2 add to queue
4 1 add to queue
5 5 eval / eval queue
6 6 eval
- 7 no send to client
7 8 ?
8 9 ?