Как программно остановить RabbitListener в Micronaut

У меня есть RabbitListener, который выглядит так:

@RabbitListener
public class ProductListener {

    @Queue(value = "product", executor = "product-listener") 
    public void receive(MyType message) {
        // process message
    }
}

В некоторых случаях я хочу закрыть свое приложение. Однако перед этим я хотел бы запретить RabbitListner потреблять новые сообщения и дать ему некоторое время для завершения обработки уже полученных сообщений.

Весной это должно быть возможно через RabbitListenerEndpointRegistry#getListenerContainer(String) в соответствии с Как прекратить потребление сообщений с помощью @RabbitListener и Как изящно прекратить потребление сообщений с помощью @RabbitListener .
Я не нашел ничего подобного для Micronaut. Возможно ли это с Micronaut?


person stm    schedule 30.07.2021    source источник
comment
Вы можете попытаться установить значение rabbitmq.shutdown-timeout в SingleRabbitConnectionFactoryConfig, и оно должно перестать потреблять по истечении времени, которое вы предоставляете.   -  person T.K    schedule 30.07.2021
comment
Вы имеете в виду, что я должен позвонить SingleRabbitConnectionFactoryConfig.setShutdownTimeout(X) ? По умолчанию это должно быть установлено на 10 секунд.   -  person stm    schedule 31.07.2021
comment
И это значение по умолчанию не работает для вас?   -  person T.K    schedule 31.07.2021