Вручную ack Google pubsub сообщения от Apache Camel route - PullRequest
1 голос
/ 18 февраля 2020

У меня есть основной Camel Route (Poller), который запускается из компонента Google PubSub и вызывает дополнительный маршрут, который идет к конечной точке HTTP. Если я получаю какие-либо исключения, такие как Сеть или Конечная точка (HTTP 500, 400 и c), тогда я не хочу, чтобы сообщение было взломано, вместо этого я хочу, чтобы все сообщения были подтверждены, независимо от того, успешно ли завершен маршрут.

Я смотрю варианты ACK независимо от результата маршрута. До сих пор не удалось найти какие-либо методы или реквизиты на Exchange et c.

Я знаю, что это не идеально, но у меня есть требование в этом смысле. Я пытался использовать пользовательскую фабрику соединений pubsub, как в этом вопросе ( Как вручную получить / заблокировать сообщение PubSub в Camel Route ), но в моем случае это не помогает, так как я все еще не выгляжу чтобы иметь возможность вернуть их обратно.

Любые идеи о том, как я могу это сделать, или любые примеры, которые могут мне помочь. Спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Предположительно, это должно работать:

Добавить процессор в ваш маршрут Camel, который делает это:

exchange.getUnitOfWork().done(exchange);

Он должен подтверждать сообщение независимо от источника (в данном случае google pubsub) ...

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