Как правильно непрерывно получать сообщения от служебной шины Azure? Я делаю следующее, опрашивая очередь бесконечно.
const receiver = queueClient.createReceiver(ReceiveMode.peekLock);
while (true) {
const maxMessageCount = 1;
try {
if (!receiver.isReceivingMessages()) {
const message = await receiver.receiveMessages(maxMessageCount);
if (message.length > 0) {
/**
* Note: we are always receiving one message per call
*/
processMessage(message[0]);
}
}
} catch (err) {
processError(err);
}
}
Но я попадаю в очень странную ситуацию. Через некоторое время половина сообщений теряется и только половина получает указанный выше получатель. Интересно, что происходит? Есть ли какая-то ошибка в этом коде? Я обычно запускаю скрипт nodejs и останавливаю его, используя Ctrl + c. Есть ли вероятность того, что какой-нибудь deamon listner будет работать в фоновом режиме с указанным выше логом c, даже когда я остановлю скрипт nodejs?
Примечание: я всегда запускаю один скрипт nodejs.