首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache-camel Seda端点,BlockWhenFull未确认

Apache-camel Seda端点,BlockWhenFull未确认
EN

Stack Overflow用户
提问于 2016-01-22 14:59:55
回答 1查看 1.1K关注 0票数 0
代码语言:javascript
复制
from("seda:myqueue?size=2&blockWhenFull=true").process(sleep());



private Processor sleep() {
                return new Processor() {                    
                    @Override
                    public void process(Exchange exchange) throws Exception {
                        String body = exchange.getIn().getBody(String.class);
                        System.out.println(curTime() + " Going for sleep sleepid=" + body );
                        Thread.sleep(5000l);                        
                        System.out.println(curTime() + " Done sleep sleepid=" + body );
                    }
                };



for (Integer i = 0; i <5; i++) {            
            Exchange exchange = new DefaultExchange(context);
            exchange.setPattern(ExchangePattern.InOnly);
            exchange.getIn().setHeader("header", i);
            exchange.getIn().setBody(i.toString());
           System.out.println("sending msg to seda");
           Exchange send = template.send("seda:myqueue",exchange);
           System.out.println("done:"+i);

        }

"BlockWhenFull“未被确认,也就是说,如果size设置为2,并且我在循环中发送3 msg,而body为"1”、"2“和"3”,则只有"1“和"2”才能得到睡眠msg,而且我认为即使将"BlockWhenFull“设置为真,第三条消息也会被静默删除。

我做错什么了?

版本: 2.15.3

EN

回答 1

Stack Overflow用户

发布于 2016-01-23 08:45:52

你需要在制片人上设置blockWhenFull (如你发送的地方)

代码语言:javascript
复制
template.send("seda:myqueue?blockWhenFull=true",exchange);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34949651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档