MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como usar pollingThrottle e pollingInterval?


Esses 10 segundos devem ser 10 ms.

  1. Certifique-se de estar atualizando apenas o MongoDB e não o Minimongo - por exemplo, se você atualizar através de métodos Meteor, certifique-se de não ter stubs de clientes.

  2. Tente isto:
    Meteor.publish("currentRoom", function (roomName) {
      return Rooms.find({name: roomName}, {
        disableOplog: true,
        pollingThrottleMs: 10000, 
        pollingIntervalMs: 10000
      });
    });
    

Você tem que desabilitar a cauda do oplog. Caso contrário, você ainda será notificado toda vez que os logs do MongoDB forem alterados.

Eu testei isso com um observador no cliente e funcionou.
Cursor.observe({
  changed: (newdoc, olddoc) => {
    console.log('changed');
  }
});

Informação adicional:

https://github.com /meteor/docs/blob/version-NEXT/long-form/oplog-observe-driver.md http://info.meteor.com/blog/tuning -meteor-mongo-livedata-para-escalabilidade