我有一个实现骆驼路由服务的spring-boot应用程序。我想知道使用者队列是否存在(因为这些队列不在我的系统中)。我实现了一个事件通知程序,以了解交换是否发送了触发的事件。但是我对事件通知程序的自定义实现无法正常工作。我可以在日志中看到何时触发了骆驼上下文事件,仅此而已。事件通知程序不会捕获其他事件。 谢谢。
这是五月事件通知程序类:
@Component
public class MyLoggingSentEventNotifer extends EventNotifierSupport {
private static final Logger logger = LoggerFactory.getLogger(MyLoggingSentEventNotifer.class);
@Override
public void notify(final EventObject event) throws Exception {
if (event instanceof CamelContextStartedEvent) {
}
if (event instanceof ExchangeSentEvent) {
final ExchangeSentEvent sent = (ExchangeSentEvent) event;
log.info("Took {} millis to send to: {}", sent.getTimeTaken(), sent.getEndpoint());
}
if (event instanceof ExchangeCreatedEvent) {
final ExchangeSendingEvent sending = (ExchangeSendingEvent) event;
log.info("Sending to to: {}", sending.getEndpoint());
}
}
@Override
public boolean isEnabled(final EventObject event) {
if (event instanceof CamelContextStartedEvent) {
return true;
}
return false;
}
}
答案 0 :(得分:1)
问题出在您的isEnabled
方法上,您应该在其中过滤要接受的事件。并且在您的代码中,您仅接受骆驼上下文启动事件,因此您只能得到它。相反,要么针对所有事件返回true
,要么过滤您只想要的事件。