Сценарий
Мы находимся в сценарии интеграционного тестирования, в котором мы раздаем многоразовый тестовый контейнер RabbitMQ. Между тестовыми запусками мы хотим очистить контейнер.
Techstack
- RabbitMQ Docker Testcontainer (org.testcontainers:rabbitmq :1.19.3)
- Клиент Spring AMQP (org.springframework.amqp:spring-amqp:3.1.1)
Очистить одну очередь легко с помощью Spring-amqp. Управление всеми очередями через командную строку возможно. Но RabbitMQ сохранит неподтвержденные сообщения при очистке. Конечно, это может испортить следующий запуск теста, поэтому нам необходимо удалить и неподтвержденные сообщения.
Что нам нужно сделать
Нам нужно найдите открытые каналы, закройте их, чтобы удалить сообщения, а затем очистите очередь. Каждая очередь. Есть ли у кого-нибудь bash-скрипт для этого? Или есть простое решение, например очистка самого Testcontainer в Java одним вызовом?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-java
Мобильная версия