変更が発生したかどうかに関係なく、フォルダーに xml 更新を生成するプロセスがあります。それらのファイルが最後の更新と異なる場合は処理済みフォルダーに移動し、そうでない場合は削除します。重複ファイルを除外するために、cacheSize が 1 の FileIdempotentRepository を使用することは理にかなっていますか、それとも間違った方向に進んでいますか? ファイルの内容を idempotentKey として使用するように以下のルートに指示するにはどうすればよいですか?
<bean id="fileStore" class="org.apache.camel.processor.idempotent.FileIdempotentRepository">
<property name="fileStore" value="target/fileidempotent/.filestore.dat"/>
<property name="cacheSize" value="1" />
</bean>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file://inputFolder" />
<idempotentConsumer messageIdRepositoryRef="fileStore">
<!-- I DO NOT want to use the messageId, how do I use the entire file contents? -->
<header>messageId</header>
<to uri="file://outputFolder"/>
</idempotentConsumer>
</route>
</camelContext>
混乱を避けるために、私がやろうとしていることの疑似コードを次に示します。
current = ''
watch(inputFolder).onNewFile(f):
if (f.contents == current)
delete f
else
mv f to outputFolder
current = f.contents
更新(本当に誰かにこの賞金をもらってほしい! )
このコンテキストファイル内でインライン Groovy
/スクリプトを使用する方法を知っていれば、それは私にも役立ちます。Simple