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); }} ); }