如何在不阻塞的情况下调用 JmsListener 中的反应式服务?

How to invoke reactive service inside JmsListener without blocking?

@Component
@RequiredArgsConstructor
public class EventListener {
    
    private final EventProcessingService eventProcessingService;

    @JmsListener(destination = "inputQueue", constainerFactory = "myContainerFactory)
    public void receiveMessage(Message message) {
       eventProcessingService(message).block(); // return Mono<Void>
    }

}

我有一些侦听队列的侦听器,当消息进入时它调用服务的反应方法 (EventProcessingService)。我想知道当我阻止响应式服务的执行时会发生什么,这会导致错误吗?

如果您的应用程序是使用消息的应用程序,最合适的方法是调用 subscribe()

Subscribe 如果您的应用程序是最终目的地,则应使用

Subscribe,您还没有发布 eventProcessingService 实际执行的内容,因此无法真正判断。

所有代码都可能导致错误,这取决于您的错误处理方式。 Subscribe 本身不会抛出任何错误,但您可以选择以不同方式处理错误。

Here 您可以查看不同的示例,了解您希望如何处理错误,以及是否要记录错误。等等