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

168
Visualizações
¿Cómo evitar que un trabajo pendiente o completado se agregue a la cola de toros?

Estoy sondeando (usando node-cron ) un servicio externo cada N minutos para obtener una matriz de datos, cada elemento de la matriz tiene una identificación única. Sin embargo, ¿cómo puedo configurar mi cola de toros de modo que si agrego un elemento de datos para procesar, no puedo agregar (y, en consecuencia, reprocesar) el mismo elemento a la cola si el elemento de datos ya se está procesando o si ya se procesó/completa? si el elemento de datos no se puede procesar por cualquier motivo, se puede volver a agregar a la cola para intentar procesarlo nuevamente.

La siguiente es una configuración aproximada de mi tarea.

 import BullQueue from 'bull'; import cron from 'node-cron'; const myQueue = new BullQueue('my-queue'); myQueue.process((job, done) => { // while job is processing do not allow a new job with same uniqueLogId to be added console.log('job.id:'); // job id auto-generated by bull console.log(job.id); console.log('uniqueLogId:'); console.log(job.data.id); const result = myProcessor(job.data); if (result.ok) { // in this case a new job with uniqueLogId should not be allowed to be created done(); } else { // in this case a new job with uniqueLogId should be allowed to be created done(new Error('job failed')); } }); // run every 10 minutes cron.schedule('*/10 * * * *', () => { pollExternalAPI() // can return the same log results .then((res) => { if (res.ok) { const logs = res.logs; for (const log of logs) { // log.id uniquely identifies a job, // hence jobs with the same id should not be allowed to be created provided the last job is either pending or complete // however if job failed then create another job to attempt processing the given log data myQueue.add(log); } } }); });
about 4 years ago · Juan Pablo Isaza
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