Я использую поток изменений mongoDB в nodejs, все работает нормально, но, если база данных не работает, потребовалось более 10 5 секунд, чтобы подняться, ошибка истечения времени ожидания выброса потока изменений, вот мой код наблюдателя потока изменений
Service.prototype.watcher = function( db ){
let collection = db.collection('tokens');
let changeStream = collection.watch({ fullDocument: 'updateLookup' });
let resumeToken, newChangeStream;
changeStream.on('change', next => {
resumeToken = next._id;
console.log('data is ', JSON.stringify(next))
changeStream.close();
// console.log('resumeToken is ', JSON.stringify(resumeToken))
newChangeStream = collection.watch({ resumeAfter : resumeToken });
newChangeStream.on('change', next => {
console.log('insert called ', JSON.stringify( next ))
});
});
однако на стороне базы данных я обработал ее, то есть, если база данных отключена или переподключена с использованием этого кода
this.db.on('reconnected', function () {
console.info('MongoDB reconnected!');
});
this.db.on('disconnected', function() {
console.warn('MongoDB disconnected!');
});
, но я не могу обработать наблюдатель потока изменений, чтобы остановить его, когда база данных не работает, и запуститьэто снова при переподключении базы данных или если есть какой-то другой лучший способ сделать это?