10 のルートが定義されており、そのうちの 2 つがここにリストされています。他の 8 つは同じですが、from エンドポイントは別のディレクトリです。各ルートは、dir にあるファイルを取得し、1 つの groovy クラスによって処理されます。1 つのファイルがディレクトリの 1 つにドロップされると正常に動作しますが、ファイルが各ディレクトリに同時にドロップされると、各スレッドが混乱しているように見えます。各ファイルをピックアップしたというログメッセージを受け取りますが、各ファイルがピックアップされると、groovy で定義されたすべての変数が変更されるように、各スレッドが 1 つのプロセス「beginProcess」を使用しているように見えます。これに意味があるかどうかはわかりませんが、しかし、誰かが私が以下でやっていることは合法だと言うことができますか? 基本的に、複数のルートで 1 つのクラスを呼び出すことができます。もしそうなら、少なくとも私はそれが私のグルーヴィーなクラスになければならないことを知っているでしょう(しかし、それが1つのファイルで動作することを見ると、それはここにはないことを示唆していますが、現時点ではそれを想定していません). どうもありがとう!
<camel:camelContext id="myId"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from
uri="file://directoryStructure1/?move=archive&sortBy=ignoreCase:file:name&readLock=markerFile&readLockCheckInterval=5000&readLockTimeout=10m&maxMessagesPerPoll=1" />
<process ref="beginProcess"></process>
</route>
<route>
<from
uri="file://directoryStructure2/?move=archive&sortBy=ignoreCase:file:name&readLock=markerFile&readLockCheckInterval=5000&readLockTimeout=10m&maxMessagesPerPoll=1" />
<process ref="beginProcess"></process>
</route>
</camel:camelContext>
<bean id="beginProcess" class="package.groovy.class"> </bean>