Eu tenho o servidor da Web node.js usando express.js e mongodb como um armazenamento de dados. Este servidor está sendo controlado por runit
e estou tentando implementar uma maneira de desligar o servidor.
Eu estou implementando manipuladores de sinal para SIGINT
e SIGTERM
, e estou ciente de que você pode parar de ouvir novas conexões chamando .close()
no objeto retornado por createServer()
. Por enquanto, tudo bem.
No entanto, mesmo quando não houver mais solicitações, pode haver várias solicitações no sistema que precisam ser concluídas antes que eu possa fechar o banco de dados.
Eu estou usando um mongodb ReplicaSet, e eu acho que se eu apenas chamar db.close()
imediatamente, que algumas dessas solicitações podem falharde alguma maneira. Existe alguma maneira de fechar o banco de dados de uma maneira que permita que as consultas de banco de dados pendentes sejam concluídas ou eu precise ter manualmente um contador de +/- para ver quantas consultas "ativas" estão pendentes e aguardar o desligamento até atingir 0? ?
Respostas:
1 para resposta № 1Você teria que garantir manualmente que está em um estado limpo para desligar, pois o driver não aguarda as operações restantes antes de desligar.
Sinta-se à vontade para registrar um ticket para o recurso em
https://github.com/mongodb/node-mongodb-native/issues/