我执行sql选择并将数据保存为CSV。 在这里,我想将sql结果发送到两个端点。
我正在使用骆驼2.12.3版本
我尝试使用多播,但不适用于第二个端点。 我只在第一个文件中有sql结果,而在第二个文件中没有
<to uri="sql:{{export.select.query}}?dataSource=selectDataSource" />
<marshal>
<csv autogenColumns="true" delimiter="|" />
</marshal>
<multicast stopOnException="true">
<to uri="file:{{export.select.dir}}?fileName=${property.exportSelectFileName}_exportSelect.csv&charset=utf-8" />
<to uri="file:{{export.select_2.dir}}?fileName=exportSelect_${property.exportSelectFileName}.csv&charset=utf-8&fileExist=Append" />
</multicast>
您还有其他建议吗?否则,是否有可能通过常规方法做到这一点?
答案 0 :(得分:0)
您可以使用窃听来复制消息并将其发送到第一个端点。 或者将主体放在属性中,并在第一个端点调用之后获取它。 区别在于您的错误处理策略。
答案 1 :(得分:0)
我在下面找到了它,对我来说很好
<recipientList>
<constant>file:{{export.select.dir}}?fileName=${property.exportSelectFileName}_exportSelect.csv&charset=utf-8,file:{{export.select_2.dir}}?fileName=exportSelect_${property.exportSelectFileName}.csv&charset=utf-8&fileExist=Append </constant>
</recipientList>