Есть два способа сделать это:
- Бросить исключение, если сообщение имеет неверный тип.В этом случае сообщение не будет удалено из очереди, поскольку оно не было успешно обработано и ACK не был получен.
- Вставьте сообщение в очередь самостоятельно, как только вы обнаружите, что тип является плохим.
Оба подхода могут страдать от так называемого бесконечного цикла.Сообщение обрабатывается, оно имеет неправильный тип, оно вставляется повторно, и это повторяется.Чтобы избежать этого, вы можете добавить некоторую политику повторной вставки, например: экспоненциальную задержку или ограниченное количество повторных вставок и т. Д.
Но возникает некоторое сомнение: почему ваша служба потребляет сообщения, которых она не должна?Возможно, вам нужен конкретный процессор этого сообщения?В этом случае вы можете направить на подходящий процессор.