Использование MQ сервера для метода с возвращаемым значением

Есть Java Spring Boot приложение и операция создания требует вернуть id созданного объекта, но запрос на создание приходит через встроенный Active MQ таким образом:

@Component
@RequiredArgsConstructor
public class JmsProducer {

    private final JmsTemplate jmsTemplate;

    public void send() {
        Message message = Message.builder()
                .payload("test payload")
                .build();

        jmsTemplate.convertAndSend(JmsConfig.MESSAGE_QUEUE, message);
    }
}

@Component
@RequiredArgsConstructor
public class JmsConsumer {

    private final MessageRepository messageRepository;

    @JmsListener(destination = JmsConfig.MESSAGE_QUEUE, containerFactory = "jmsFactory")
    public void receiveMessage(@Payload Message message) {
        long id = messageRepository.create(message);
        // как-то вернуть id тому кто делал запрос
    }
}

После того как сообщение получено, и репозиторий вернул id его нужно каким-то образом вернуть тому кто делал запрос что бы id вернулся из метода send(), но convertAndSend ничего не возвращает.

Это как-то можно сделать? Если да, то как?


Ответы (0 шт):