У меня есть одна очередь AMQ, которая получает простые сообщения со строкой тела. Учтите, что я отправляю CLSID как тела сообщений. CLSID могут быть не уникальными, но я бы хотел отклонить все сообщения с неуникальными телами и оставить в очереди только один экземпляр таких сообщений. Есть ли простой способ сделать это?
В настоящее время я использую обходной путь. Сообщения из очереди потребляются некоторым процессором, который пытается вставить тела в простую таблицу БД с ограничением UNIQUE, примененным к полю message_body. Если процессор вставляет сообщения успешно - он назначается для exchange.out.body и отправляется в другую очередь. Если выдается ConstraintViolationException - ничто не отправляется в другую очередь.
Хотелось бы знать, поддерживает ли AMQ нечто подобное из коробки?