从 Axon 3.3.5 上的 RabbitMQ 队列读取事件的问题
Issues reading events from RabbitMQ queue on Axon 3.3.5
使用 Axon 3.3.5,我正在尝试从 AMQP 队列中读取事件。
/**
* AMQP subscribing
*/
@Bean
SpringAMQPMessageSource notificationsEventsQueue(Serializer serializer) {
return new SpringAMQPMessageSource(serializer) {
@Override
@Transactional
@RabbitListener(id = "eventsQueue", queues = "notificationsEventsQueue")
public void onMessage(Message message, Channel channel) {
super.onMessage(message, channel);
}
};
}
@Autowired
public void configure(EventProcessingConfiguration conf, SpringAMQPMessageSource src) {
conf.registerSubscribingEventProcessor("notificationsServiceEventProcessor", c -> src);
}
我调试了 onMessage
方法,当收到新消息时,eventProcessors
列表始终为空,因此我的应用程序未处理该消息。
我错过了什么?
事件处理程序默认从事件总线接收事件。如果您希望处理程序从另一个源(例如 RabbitMQ)接收事件,则需要将该源显式分配给处理器,并将该处理程序也分配给该处理器。
最简单的方法是将 @ProcessingGroup('notificationsServiceEventProcessor')
放在事件处理程序 class 上。
使用 Axon 3.3.5,我正在尝试从 AMQP 队列中读取事件。
/**
* AMQP subscribing
*/
@Bean
SpringAMQPMessageSource notificationsEventsQueue(Serializer serializer) {
return new SpringAMQPMessageSource(serializer) {
@Override
@Transactional
@RabbitListener(id = "eventsQueue", queues = "notificationsEventsQueue")
public void onMessage(Message message, Channel channel) {
super.onMessage(message, channel);
}
};
}
@Autowired
public void configure(EventProcessingConfiguration conf, SpringAMQPMessageSource src) {
conf.registerSubscribingEventProcessor("notificationsServiceEventProcessor", c -> src);
}
我调试了 onMessage
方法,当收到新消息时,eventProcessors
列表始终为空,因此我的应用程序未处理该消息。
我错过了什么?
事件处理程序默认从事件总线接收事件。如果您希望处理程序从另一个源(例如 RabbitMQ)接收事件,则需要将该源显式分配给处理器,并将该处理程序也分配给该处理器。
最简单的方法是将 @ProcessingGroup('notificationsServiceEventProcessor')
放在事件处理程序 class 上。