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

680
Vistas
Desencadenador de atlas de MongoDB: se excedió el límite de tiempo de ejecución

Estoy probando un disparador en MongoDB atlas que ejecuta una función Realm para agregar un objeto al índice de Algolia al insertarlo en la colección MongoDB. En mi caso, el registro se carga en el índice de Algolia con éxito, pero la función no se detiene allí y supera el límite de tiempo.

Los documentos mencionan que

El tiempo de ejecución de la función está limitado a 120 segundos

y esa es la razón por la que la función se agotó

Aquí está mi función Realm

 exports = function(changeEvent) { const algoliasearch = require('algoliasearch'); const client = algoliasearch(context.values.get('algolia_app'),context.values.get('algolia_key')); const index = client.initIndex("movies"); changeEvent.fullDocument.objectID = changeEvent.fullDocument._id; delete changeEvent.fullDocument._id; index.saveObject(changeEvent.fullDocument) .then(({objectID}) => { console.log('successfully inserted: ',objectID); }) .catch(err => { console.log(err); }); };

Aquí está el resultado que obtengo en los registros.

 Logs: [ "successfully inserted: 61cf0a79c577393620dd8c80" ] Error: execution time limit exceeded

Incluso probé con declaraciones de return después de console.log s pero sigo teniendo el mismo problema.

que estoy haciendo mal

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Aparentemente, el equipo de MongoDB solucionó esto a principios de marzo, como se ve en https://www.mongodb.com/community/forums/t/extremely-slow-execution-of-an-external-dependency-function/16919/27 .

Probé con este código a continuación y funcionó perfectamente sin tiempos de espera esta vez. Hice que la función fuera una función asíncrona. Según los registros, ni siquiera tomó 1 segundo realizar la indexación.

 exports = async function(changeEvent) { const algoliasearch = require('algoliasearch'); const client = algoliasearch(context.values.get('algolia_app'),context.values.get('algolia_key')); const index = client.initIndex("movies"); changeEvent.fullDocument.objectID = changeEvent.fullDocument._id; delete changeEvent.fullDocument._id; try{ const result = await index.saveObject(changeEvent.fullDocument); console.log(Date.now(),'successfully updated: ',result); } catch(e){ console.error(e); } }

Registros ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo 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