如何使用多个线程使用Camel文件组件使用者

时间:2017-09-20 06:32:26

标签: java multithreading apache-camel

如何使用多个线程使用Camel文件组件使用者? 意思是我有这个代码:

<route id="incomingFile">
                    <from
                           uri="file://{{incomingFileBaseFolder}}?filter=#fileFilter&amp;recursive=true&amp;readLock=changed&amp;move=${file:parent}/.backup/${date:now:yyyy}/backup_${exchangeId}_${file:onlyname.noext}.${file:name.ext}&amp;sortBy=file:modified&amp;delay={{incomingFileDelay}}" />
                    <transacted />
                    <threads poolSize="10">
                           <convertBodyTo type="java.lang.String" />
                           <setHeader headerName="{{incoming_file_backup_date_header_name}}">
                                 <simple>$simple{date:now:yyyy}
                                 </simple>
                           </setHeader>
                           <bean ref="saveFile" method="duplicateCeck" />
                           <to uri="direct:validateFileDirect" />
                           <to uri="direct:inputFileContentHandle" />
                    </threads>
             </route>

但它似乎一次不能在多个文件上运行。 我该如何实现呢?

1 个答案:

答案 0 :(得分:1)

删除<transacted/>,因为它不支持异步路由。此外,事务仅适用于本机支持JTA事务的组件/资源,通常只有JMS和JDBC。