Очередь мертвых писем в памяти Apache Camel - PullRequest
0 голосов
/ 07 мая 2019

Я ищу простую задержанную повторную доставку по моему верблюжьему маршруту. Я настроил

from("rss:" + rssUrl + "?splitEntries=false&delay=15s").bean(rssHandler) .onException(ConnectException.class).redeliveryDelay(10000).backOffMultiplier(2).maximumRedeliveries(5);

на моем маршруте, но, увидев, что он не работает, я узнал, что должен настроить канал недоставленных сообщений, иначе эта конфигурация в основном игнорируется.

Итак, я добавил:

errorHandler(deadLetterChannel("log:error"));

к моей конфигурации Java Camel, однако, я ищу простейшую из возможных реализаций канала мертвой буквы, которая не требует от меня ввода, скажем, ActiveMQ или чего-то подобного, я был бы счастлив с простым механизмом повторения на основе памяти без гарантий. К сожалению, я пока не нашел ничего, поэтому обращайтесь сюда, если кто-нибудь может помочь мне указать на простой способ настройки повторов с некоторым минимальным количеством недоставленных компонентов канала.

1 Ответ

0 голосов
/ 08 мая 2019

Использование компонента seda вместо компонента журнала может привести к получению мертвой буквы в памяти.Например, заменить «бревно» на «седа».Однако имейте в виду, что как только повторные доставки исчерпаны, сообщение будет жить в этой очереди и, следовательно, в памяти, если не будет процесса, удаляющего его из очереди или удаляющего сообщения старше указанного периода времени, настроенного для этой очереди.

https://camel.apache.org/dead-letter-channel.html

Вы также можете просто настроить конфигурацию так, чтобы пометить исключение как обработанное и отказаться от сообщения после достижения максимального количества повторных доставок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...