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

685
Visualizações
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 Respostas
Responde à pergunta

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 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