2

根据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 。提前致谢!

4

1 回答 1

1

我从来没有真正测试过这个,但是从文档中你应该能够用“seda”替换“direct”来进行 asych:

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

在您澄清之后,我认为您可能正在寻找骆驼中的异步路由引擎,它将通过将 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("...")
于 2017-04-12T06:35:00.843 回答