У меня есть клиент, который получает сообщения из очереди.В настоящее время у меня есть MessageListener
, который реализует onMessage()
.
После получения сообщения оно обрабатывается и сохраняется в базе данных по методу onMessage()
;Затем клиент подтверждает получение сообщения.
Пока база данных работает, проблем нет.Но если БД не работает, клиент не подтвердит.
Чтобы справиться с этим, я хочу, чтобы клиент отправлял запланированные запросы в очередь на любые неподтвержденные сообщения через запланированные интервалы.
На самом деле, единственный способ сделать это - перезапустить клиент, который не является идеальным.Есть ли способ инициировать очередь для повторной отправки неподтвержденного сообщения без перезапуска?
Что у меня есть в onMessage()
:
//code to connect to queue
try {
if (DB is available){
//process message
//save required details to DB
msg.acknowledge();
}
else{
//schedule to request same message later from queue
}
} catch (Exception e) {}