sample(中文翻译为采样):单位时间内只能有指定个数的节点才能通过,剩余的丢弃
<route>
<from uri="direct:sample" />
<!-- messageFrequency="3"表示每第三个就输出 -->
<sample messageFrequency="3">
<to uri="bean:echo" />
</sample>
</route>
<route>
<from uri="direct:sample" />
<!-- 表示每三秒钟只能通过一个(默认是每秒钟只能通过一个) -->
<sample samplePeriod="3" units="seconds">
<to uri="bean:echo" />
</sample>
</route>
调用:
ProducerTemplate pt = context.getBean("camelContextTemplate", ProducerTemplate.class);
for(int i=1;i<=12;i++)
{
final int index = i;
pt.send("direct:sample", new Processor(){
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("index", index);
}}
);
}