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

374
Views
Proceso en segundo plano de NestJS que obtiene datos en 5 acciones paralelas

Estoy trabajando en una API de NestJS que recibe algunos códigos de artículos y los guarda en una base de datos con estado como queue y luego quiero crear un proceso en segundo plano que busque artículos con estado de queue y obtenga un sitio web con ese código y complete la información sobre ese ID de artículo.

Quiero que obtenga códigos en 5 rutinas paralelas, cada una debe obtener un nuevo código de la lista tan pronto como termine de obtener el código actual.

La forma en que está construido en este momento, obtiene 5 códigos y usa Promise.all pero lo que no me gusta de este enfoque es que si uno de los espera es significativamente más lento que el otro, todos van por el más lento.

 const promiseResult = await Promise.all(promiseList);

¿Qué enfoque es el mejor para mí para aprender a fin de lograr lo que estoy planeando hacer?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Básicamente haces tu trabajo cuando se cumplen todas las promesas. Tienes razón cuando dices que esperas al más lento, ya que esto es exactamente lo await Promise.all(promiseList) .

Ahora debe preguntarse si puede procesar las promesas más rápidas mientras espera la más lenta. Si es así, puede iterar sus promesas y definir un .then() para ellas:

 for (let promise of promiseList) { promise.then((value) => { //Do something }); }

De esta manera, todas sus promesas tienen un controlador then para el caso en que se cumple la promesa y su Javascript fluye normalmente, sin esperar ninguna de las promesas. Una vez que se cumple cada promesa, el bucle de eventos detectará que ocurrió un evento y llamará a su función de devolución de llamada (en el caso del ejemplo anterior then la función de flecha dentro de la llamada).

Tenga en cuenta then la devolución de llamada nunca debe suponer que las otras promesas también se completaron, pero eso no debería ser un problema en su caso, porque desea trabajar cuando su lista de promesas también se completó parcialmente.

about 4 years ago · Juan Pablo Isaza 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!