MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Nghe các sự kiện kết nối lại trong trình điều khiển MongoDB

Chắc chắn bạn có thể. Về cơ bản, mặc dù bạn cần phải khai thác EventEmitter ở cấp độ thấp hơn so với cơ bản là tắt MongoClient chính nó.

Bạn có thể thấy rõ rằng những thứ như vậy tồn tại vì chúng được hiển thị trong "ghi nhật ký", có thể được bật trong trình điều khiển thông qua cài đặt:

{ "loggerLevel": "info" }

Từ đó, nó thực sự chỉ là một vấn đề của việc khai thác vào bộ phát nguồn thực tế. Tôi đã thực hiện những điều này trong danh sách sau đây, cũng như bao gồm một mẹo nhỏ để lấy các sự kiện được liệt kê từ một phát ra đã cho, được chính tôi sử dụng để theo dõi điều này:

const MongoClient = require('mongodb').MongoClient;

function patchEmitter(emitter) {
  var oldEmit = emitter.emit;

  emitter.emit = function() {
    var emitArgs = arguments;

    console.log(emitArgs);

    oldEmit.apply(emitter, arguments);
  }

}


(async function() {

  let db;

  try {

    const client = new MongoClient();

    client.on('serverOpening', () => console.log('connected') );

    db = await client.connect('mongodb://localhost/test', {
      //loggerLevel: 'info'
    });

    //patchEmitter(db.s.topology);

    db.s.topology.on('close', () => console.log('Connection closed') );
    db.s.topology.on('reconnect', () => console.log('Reconnected') );


  } catch(e) {
    console.error(e)
  }

})()

Vì vậy, hai người nghe đó đã xác định:

    db.s.topology.on('close', () => console.log('Connection closed') );
    db.s.topology.on('reconnect', () => console.log('Reconnected') );

Sẽ hoạt động khi kết nối bị ngắt và khi kết nối lại được. Ngoài ra còn có những thứ khác như nỗ lực kết nối lại cũng nằm trong trình phát sự kiện giống như bạn sẽ thấy với loggerLevel đã bật cài đặt.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoose điền tham chiếu đến subocument

  2. Các kết nối có sẵn trong MongoDB

  3. Lỗi nghiêm trọng:Không tìm thấy lớp 'MongoDB \ Driver \ Manager'

  4. Theo dõi hiệu suất MongoDB?

  5. Quy trình tổng hợp Mongodb cách hạn chế đẩy nhóm