对于以下代码:fileLineToObject bean将一行转换为对象,并使用Producer Template将每个对象发送到文件中所有行的循环中的direct:member端点。
<template id="MemberTemplate" defaultEndpoint="direct:member" />
<route>
<from uri="direct:start"/>
<bean ref="fileLineToObject"/>
</route>
<route>
<from uri="direct:member"
......
<to uri="seda:input">
</route>
<route>
<from uri="seda:input?concurrentConsumers=4" />
<bean ref="abcProcessor" /> // These are complete CPU bound.
<bean ref="xyzProcessor" />
<to uri="direct:xxx" />
</route>
<route>
<from uri="direct:xxx"
......
<to uri="seda:output">
</route>
<route>
<from uri="seda:output?concurrentConsumers=4"
......
<to uri="file:xxx">
</route>
无论seda输入或输出并发消费者的数量如何,处理时间(可忽略不计)都没有区别。我在四核PC上测试。是因为核心有限吗?
如何使用并发减少处理时间?