camel-cdi 中的异步事件
Asynchronous events in 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 。
提前致谢!
我从来没有真正测试过这个,但是从文档中你应该可以用 "seda" 替换 "direct" 来实现异步:
@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("...")
根据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 。 提前致谢!
我从来没有真正测试过这个,但是从文档中你应该可以用 "seda" 替换 "direct" 来实现异步:
@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("...")