Apache Camel的sample的简单示例

时间:2022-05-31 20:48:23

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