camel-cdi中的异步事件

时间:2017-04-04 13:29:46

标签: java apache-camel cdi java-ee-7 apache-camel-cdi

根据http://camel.apache.org/cdi.html

@Inject
@Uri("direct:event")
ProducerTemplate producer;

void observeCdiEvents(@Observes String event) {
   producer.sendBody(event);
}

from("direct:event")
 .log("CDI event received: ${body}");

相当于

@Inject
CdiEventEndpoint<String> cdiEventEndpoint;

from(cdiEventEndpoint).log("CDI event received: ${body}");

如何使用

转换示例
 producer.asyncSendBody(...)

使用CdiEventEndpoint。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

我从未真正测试过这个,但是从文档中你应该能够用“seda”取代“直接”去asych:

@Inject
@Uri("seda:event")
ProducerTemplate producer;
...

在您澄清之后,我认为您可能正在寻找camel中的异步路由引擎,可以通过将threads()插入到java dsl设置中来使用它:

from("direct:event") // using a producer "direct:event" in an @Observes method
    .threads()
    .log("...")

或关于cdi事件设置

from(cdiEventEndpoint) // using @Inject CdiEventEndpoint<String> cdiEventEndpoint
    .threads()
    .log("...")
相关问题