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

256
Views
Kue: mejores prácticas para procesar/sondear continuamente la cola

¿Cuál es la mejor manera de procesar continuamente los elementos agregados a la cola? Veo el siguiente método

 queue.process

https://github.com/Automattic/kue#processing-jobs

pero esto se procesará y regresará. Los elementos agregados después de esta llamada obviamente no se procesan.

Pensé en hacer:

 queue.on('job enqueue', function(id, type){ queue.process('email', function (job, done) { console.log('processing one: ' + job.id); done(null); }); });

¿Pero no está seguro si esto activa múltiples métodos de proceso ignorando el estado actual de la cola?

EDITAR:

Creé un controlador para escuchar el tipo de 'correo electrónico', pero solo se llama una vez dado el escenario a continuación. A menos que me esté perdiendo algo, ¿esperaría que el proceso se ejecutara exactamente 10 veces aquí?

 const queue = kue.createQueue(); queue.process('email', function (job, done) { email(job.id, job.data, done); }); var email = function(id, email, done) { console.log('job: %s, sent to: %s number: %s', id, email.to, email.number); done(null, {result: 'OK'}); }; queue .on('job enqueue', function (id, type) { console.log('job %s got queued of type %s with id %s', id, type); }) .on('job complete', function (id, result) { console.log('job complete: ' + id); }); for (var i = 0; i < 10; i++) { queue .create('email', { title: 'welcome email for tj', number: i, to: 'tj@learnboost.com', template: 'welcome-email' }) .removeOnComplete(true) .save(); }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Se llamará a la función pasada a queue.process para cada trabajo en cola.

Piense en ello como un controlador de eventos: "escucha" (en este caso) eventos/trabajos de "correo electrónico" , y para cada uno se llamará a la función del controlador. Por lo tanto, es incorrecto que "los elementos agregados después de esta llamada obviamente no se procesen" .

Según el manual fino , "de forma predeterminada, una llamada a queue.process() solo aceptará un trabajo a la vez para su procesamiento" , pero puede aumentar la concurrencia:

 queue.process('email', 20, function(job, done){ // ... });

Un código de ejemplo que muestra que se llama al controlador para cada nuevo trabajo:

 const kue = require('kue'); const queue = kue.createQueue(); queue.process('email', function(job, done){ console.log('got job', job.data); done(); }); setInterval(() => { queue.create('email', { timestamp : new Date() }).save(); }, 1000);
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!