split()、resequence() とマルチスレッドの統合について質問があります。私の(素朴な)ルートは次のようになっています(問題を説明するために省略されています):
from("file:input")
.process(prioAssign)
.split(body().tokenize("\n")).streaming()
.resequence().simple("${in.header.prio}").allowDuplicates().reverse()
.to("direct:process")
.end()
.process(exportProcessor)
from("direct:process")
.threads(10, 100, "process")
.process(importProcessor) // take some time for processing
私は次のことを達成するのが好きです:
- importProcessor の作業は複数のスレッドに分散する必要があります
- (スプリッターからの) アイテムは、優先順位に従って処理する必要があります (並べ替えられます)。
- exportProcessor は、分割されたすべてのオブジェクトが (1 つのファイルから) 処理されたときにトリガーされる必要があります。
上記のコードの問題は、再シーケンス ステップを含めると、エクスポートがすぐにトリガーされ、再シーケンス自体が機能しないことです。Camel の背後にあるスレッド モデルを理解していないようです。
すべてのヒントを事前にありがとう!