Привет! Я использую новый nodejs SDK для подключения к сервисной шине. Как правильно получать сообщения, пока работает мое приложение? Пример кода показывает 2 способа прослушивания сообщений:
Способ 1 - получение партии
const receiver = client.getReceiver();
try {
for (let i = 0; i < 10; i++) {
const messages = await receiver.receiveBatch(1, 5);
if (!messages.length) {
console.log("No more messages to receive");
break;
}
console.log(`Received message #${i}: ${messages[0].body}`);
await messages[0].complete();
}
await client.close();
} finally {
await ns.close();
}
}
Метод 2 - потоковый прослушиватель
try {
receiver.receive(onMessageHandler, onErrorHandler, { autoComplete: false });
// Waiting long enough before closing the receiver to receive messages
await delay(5000);
await receiver.close();
await client.close();
} finally {
await ns.close();
}
Я использовал метод 2 при запуске и практически никогда не закрывал клиент. Но через некоторое время соединение просто перестает работать, и сообщения больше не принимаются (застряли в очереди).
Как правильно получать сообщения «навсегда»?
- Восстановить нового клиента (открывать и закрывать, например, каждую минуту) методом 1, ИЛИ
- Восстановить нового клиента (открывать и закрывать, например, каждую минуту) с помощью метода 2, ИЛИ
- Какая-то система голосования (как)?