- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样一个文件
line1
line2
line3
line4
line5
line6
line7
line8
还有这样的路线:
.from("direct:start")
.split().tokenize("\r\n").streaming()
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Splitter:" +
exchange.getIn().getBody(String.class));
}
})
.aggregate(constant(true), new MyAggregationStrategy())
.completionSize(3).completionTimeout(10000)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
int size = exchange.getIn().getBody(Set.class).size();
System.out.println("Processor, Set size:" + size);
}
})
.to("mock:end")
MyAggregationStrategy 创建一个包含 3 个项目的集合。这适用于前 6 行,我得到如下输出:
Splitter:line 1
Splitter:line 2
Splitter:line 3
...
Processor, Set size:3
...
Splitter:line 4
Splitter:line 5
Splitter:line 6
...
Processor, Set size:3
...
Splitter:line 7
Splitter:line 8
虽然第 7 行和第 8 行在 MyAggregationStrategy 的 oldExchange 中聚合,但之后定义的处理器永远不会为它们调用。 completionTimeout 也不起作用。该代码立即终止,并且不会为不存在的第 9 行等待 10 秒。
有什么想法吗?我认为这是处理不满足 completionSize 的剩余行的推荐方法?
因为我们绑定(bind)到 Java 6,所以我们使用 camel 版本 2.13.4。
最佳答案
找到答案了!
JUnit 中出现的问题仅导致 finish.assertIsSatisfied()
被立即执行,而不是等待 completionTimeout
中给出的超时。
使用 finish.assertIsSatisfied(long timeoutForEmptyEndpoints)
值高于 completionTimeout
中给出的值解决了我的问题
关于java - 带有 completionTimeout 的 Camel completionSize 在 JUnit 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062000/
给定以下 Camel 聚合器(通过 Spring XML): ${header.id} == 1 completionSize、correlation
我有这样一个文件 line1 line2 line3 line4 line5 line6 line7 line8 还有这样的路线: .from("direct:start") .split().tok
我是一名优秀的程序员,十分优秀!