Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

276
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda