Тайм-аут обработки потребителем? - PullRequest
0 голосов
/ 12 марта 2019

Вот наш сценарий:

Мы публикуем сообщения в теме, и на эту тему подписана очередь.У нас есть несколько потребителей node.js, подключенных к этой очереди для обработки входящих сообщений через пакет solclient.

Что мы хотим сделать, это обработать входящие сообщения и после успешной обработки сообщения подтвердить сообщение так, чтобыон удаляется из очереди.Задача, которую мы имеем, состоит в том, как справиться с ошибочными условиями.Мы пытаемся выяснить, как указать брокеру, что сообщение не удалось обработать?Ожидалось бы, что брокер попытается снова отправить его потребителю, и как только будет достигнуто максимальное количество доставок, он перейдет к DMQ.

1 Ответ

0 голосов
/ 13 марта 2019

Я не верю, что в Solace для потребителя есть способ "НАБЛЮДАТЬ" полученное сообщение, чтобы сообщить об ошибке при обработке.Я полагаю, что вы можете отменить привязку из очереди (т. Е. disconnect() объект Flow или MessageConsumer в API-интерфейсе Node.js), в результате чего любые неподтвержденные сообщения будут помещены обратно в очередь и доступны для повторной доставки, а затем перепривязаныв очередь.

В качестве альтернативы, если вы выполняете обработку в методе обратного вызова полученного сообщения, вы можете добавить туда исключение, и это должно (?) выполнить то же самое.Но, вероятно, гораздо менее изящный.

https://docs.solace.com/Solace-PubSub-Messaging-APIs/Developer-Guide/Creating-Flows.htm

https://docs.solace.com/API-Developer-Online-Ref-Documentation/js/solace.MessageConsumer.html#disconnect

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