Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

686
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!