Apache camel apache camel测试等待多播完成处理

Apache camel apache camel测试等待多播完成处理,apache-camel,integration-testing,Apache Camel,Integration Testing,阿帕奇骆驼试验 我有我的路由FirstRoute,它在最后多播并发送到SecondRoute 我正在写我的路由测试,我注意到如果第二个路由需要更长的时间来保存数据,多播将启动新线程。我启动第一个路由的集成测试无法读取数据b/c第二个路由是单独处理第一个路由信号已完成处理。 我试图找到一种方法,在第一个路径测试运行验证之前,它将等待第二个路径完成处理 以下是我的路线代码 from("First_route_id") .process() // bla bla .multicast() .to("S

阿帕奇骆驼试验

我有我的路由FirstRoute,它在最后多播并发送到SecondRoute

我正在写我的路由测试,我注意到如果第二个路由需要更长的时间来保存数据,多播将启动新线程。我启动第一个路由的集成测试无法读取数据b/c第二个路由是单独处理第一个路由信号已完成处理。 我试图找到一种方法,在第一个路径测试运行验证之前,它将等待第二个路径完成处理

以下是我的路线代码

from("First_route_id")
.process() // bla bla
.multicast()
.to("Second_route_id");

---
from("Second_route_id")
.proces() // save data
.end()
您可以使用来构建表达式,如“当我的路由MySecondule中的1条消息已完成时”

例如:

NotifyBuilder notification = new NotifyBuilder(context)
    .from("direct:secondRoute").whenDone(1)
    .create();
然后,您可以等待定义的条件变为现实,并另外将超时作为参数传递

boolean done = notification.matches(10, TimeUnit.SECONDS);
一旦条件变为真,将通知并继续测试。所以你可以把你的断言放在这一点下面

如果该条件未变为真,则测试将在超时结束后继续

有关NotifyBuilder的更多示例,请参见骆驼文档链接

您可以使用来构建表达式,如“当我的路由mysecondourite中有一条消息已完成时”

例如:

NotifyBuilder notification = new NotifyBuilder(context)
    .from("direct:secondRoute").whenDone(1)
    .create();
然后,您可以等待定义的条件变为现实,并另外将超时作为参数传递

boolean done = notification.matches(10, TimeUnit.SECONDS);
一旦条件变为真,将通知并继续测试。所以你可以把你的断言放在这一点下面

如果该条件未变为真,则测试将在超时结束后继续

有关NotifyBuilder的更多示例,请参见骆驼文档链接