これが私の質問です:-
私はクライアントサーバーアプリケーションを構築しているところです。サーバーにリクエストを送信して、2つのXMLを生成します(サーバーはDBから情報をフェッチし、このフェッチされた情報に基づいてXMLを生成します)。これで、サーバーがこれら2つのXMLを作成すると、サーバーはこれら2つのファイルをクライアントにストリーミングして戻し、クライアントがそれらを自分のマシンに保存できるようにします。
(投稿+ストリームからの読み取り)は1つの仕事です。2番目の操作、つまりストリームからの読み取りがないと、ジョブは不完全です。
Eclipseでジョブを作成しました。このジョブは、サーバーにリクエストを送信し、ストリーミングされたファイルを取得してクライアントマシンに保存します。サーバーへのリクエストの投稿は非同期呼び出しです(すぐに返されます)。呼び出しが投稿されてすぐに返されると、ネットワークパイプで、サーバーが送信したデータ(この場合はXMLのデータ)のポーリングを開始し、ファイルに書き込みます。
ここでわかるように、ストリームからXMLを読み取り、ファイルに書き込むことは、全体的なメインジョブの一部ですが、それ自体は別のジョブです(別のスレッドで実行する必要があります)。ユーザーがメインジョブをキャンセルした場合、ネットワークストリームからの読み取りもキャンセルする必要があります。
ですから、基本的に私の要件は、このすべてを実行するキャンセル可能な仕事です。ストリームからの読み取りは、個別のスレッド/ジョブである必要がありますが、メインジョブ内にある必要があります。ユーザーがメインジョブをキャンセルした場合、この内部ジョブ(ジョブからの読み取り)もキャンセルされます。
皆さんはこれを行うためのクリーンなアプローチを提案できますか?
-アンキット