HTTP 経由で 1 つのファイルをダウンロードする必要があるルートがあります。
このルートは、コマンドを含むメッセージ (HTTP リソースの URL と、それを保存するローカル ファイルの URI を含む) を受信したときに動的に追加され、ファイル転送が完了したらルートを削除したいので、Camel を使用しますプロトコル トランスレータとしてのみ。
これには Camel を使用しています。これは、このルートが EIP 上に構築されたプロジェクトに該当するためです。このプロジェクトでは、メッセージングと統合のために Camel があらゆる場所で使用されています。
私が使用した:
onCompletion().setBody(simple("")).bean(new Stop(getContext(), transferID));
from("stream:url?url="+from).to("stream:file?fileName="+to).routeId(this.transferID);
(ファイルは大きく、10 ~ 100 Gb です)
ファイル全体が転送される前に発生することがわかりonCompletion
ます。実際には、100〜300 kBなど、予測できない量のバイトのみが転送されます。
「ストリーム」とonCompletion
互換性がないか、何か間違っていますか?
編集:私がやっているBeanで:
c.stopRoute(transferID);
c.removeRoute(transferID);