У нас есть очередь в производстве, где TTL сообщения был установлен через приложение. Теперь мы хотим изменить TTL сообщения и присоединить политику через CTL кролика, чем установка в приложении. Фрагмент:
Map<String, Object> args = new HashMap<>();
args.put("x-message-ttl", 86400000);
for (String queueName : queueNames) {
Queue queue = new Queue(queueName, true, false, false, args);
admin.declareQueue(queue);
...
}
Чтобы добиться этого в запущенном приложении, мы хотим, чтобы способ проверки, если очередь уже существует, ничего не делает, в противном случае создайте новую очередь без аргументов. Невозможно использовать локальный кеш, так как несколько узлов издателя / подписчика могут перезапускаться при незапланированном отключении. С учетом вышеизложенного можно было бы изменить TTL во время обновления / миграции Rabbit. Можете ли вы помочь, если есть API для извлечения всех существующих очередей и его свойств аргумента?
Примечание: переопределение x-message-ttl с ошибкой сброса другого значения.