Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

278
Visualizações
MongoDB node.js: elimina un documento automáticamente después de 10 segundos

Quiero eliminar un documento automáticamente después de 10 segundos de crearlo, para hacer esto uso mongodb TTL, pero el temporizador no funciona correctamente y elimina el documento después de 40 segundos o 50 segundos o 20, entonces, ¿dónde está mi error?

 await db.collection("admin_msg").insertOne({ createdAt: new Date() }); await db.collection("admin_msg").createIndex({ createdAt: 1}, { expireAfterSeconds: 10 });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Como dice la documentación de mongo :

La tarea en segundo plano que elimina los documentos caducados se ejecuta cada 60 segundos. Como resultado, los documentos pueden permanecer en una colección durante el período entre el vencimiento del documento y la ejecución de la tarea en segundo plano.

Entonces, si el documento debe eliminarse exactamente después de 10 segundos, tendrá que escribir su propio servicio, trabajo u otro método programable para eliminar un documento después de un período de tiempo específico.

about 4 years ago · Juan Pablo Isaza Relatório

0

expireAfterSeconds no garantiza la eliminación inmediata del documento. Las eliminaciones se realizan mediante un trabajo en segundo plano que se ejecuta cada minuto. Este trabajo es de baja prioridad y MongoDB puede posponerlo cuando la carga actual es alta. Entonces, cuando es importante para su caso de uso que los tiempos de vencimiento se respeten con precisión al segundo, entonces debe agregar el tiempo de vencimiento a la consulta de búsqueda para asegurarse de que no obtenga ningún documento que ya se suponga que debe eliminarse.

Esta característica está documentada aquí: http://docs.mongodb.org/manual/tutorial/expire-data/

No recomendaría crear un trabajo propio para eliminar automáticamente documentos y ejecutarlos en intervalos más cortos, ya que eso no solo podría causar una gran carga, sino que también podría no solucionar el problema, porque esas eliminaciones también podrían retrasarse cuando el oplog se hace demasiado largo Verificar el vencimiento en la recuperación es una opción mucho más confiable.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda