我们有一个骆驼路线,它查看一个文件并处理该文件上可能有数百条记录,几乎就像一个批处理例程(但骆驼中只有一条消息)。因此,消息可能需要几分钟或几小时才能完成。一旦此消息(以及任何其他等待的消息)完成,我们希望关闭队列。
我们有以下几点需要考虑:
关闭策略定义了在强制关闭之前等待路由停止的时间
<bean id="shutdown" class="org.apache.camel.impl.DefaultShutdownStrategy">
<property name="timeout" value="#[bpf.defaultShutdownStrategy.timeout]"/>
</bean>
该路由有一个参数 shutdownRunningTask="CompleteAllTasks" 应该等到所有消息都处理完毕。
不确定哪个会占主导地位,因为一旦超时是不正常的,它将强制关闭,对于我们的场景,我们很可能会超过超时,因为我们无法预测处理需要多长时间。
有什么想法/考虑吗?提前致谢。