Understanding Kue A Comprehensive Guide with API Examples for Enhanced SEO

Introduction to Kue

Kue is a priority job queue backed by Redis that is specifically designed for Node.js. It features a powerful user interface, built-in job monitoring, and job prioritization. This article explores how to make the most of Kue with dozens of useful API examples and an app that employs these APIs.

Basic Setup

  const kue = require('kue');
  const queue = kue.createQueue();

Creating Jobs

  const job = queue.create('email', {
    title: 'Welcome email for user',
    to: 'user@example.com',
    template: 'welcome-email'
  }).save(error => {
    if (!error) console.log('Job saved: ', job.id);
  });

Processing Jobs

  queue.process('email', (job, done) => {
    sendEmail(job.data, done);
  });

Job Events

  job.on('complete', result => {
    console.log('Job completed with data ', result);
  }).on('failed attempt', (errorMessage, doneAttempts) => {
    console.log('Job failed with error ', errorMessage);
  }).on('failed', errorMessage => {
    console.log('Job failed with error ', errorMessage);
  }).on('progress', (progress, data) => {
    console.log('Job completed with progress ', progress, data);
  });

Priority Jobs

  const job = queue.create('email', {
    title: 'email, important',
    to: 'user@example.com',
    template: 'important-emails'
  }).priority('high').save();

Delayed Jobs

  const job = queue.create('email', {
    title: 'delayed email',
    to: 'user@example.com',
    template: 'delayed-email'
  }).delay(60000).save(); // Delay of 1 minute

App Example

  const express = require('express');
  const kue = require('kue');
  const queue = kue.createQueue();

  const app = express();

  app.get('/send-email', (req, res) => {
    const email = req.query.email;

    const job = queue.create('email', {
      title: 'Welcome email for user',
      to: email,
      template: 'welcome-email'
    }).save(error => {
      if (!error) res.send('Email job created with ID ' + job.id);
    });
  });

  queue.process('email', (job, done) => {
    console.log('Processing email for:', job.data.to);
    sendEmail(job.data, done);
  });

  function sendEmail(data, done) {
    setTimeout(() => {
      console.log(`Email sent to ${data.to}`);
      done();
    }, 3000);
  }

  app.listen(3000, () => {
    console.log('Server listening on port 3000');
  });

By following these examples, you can effectively leverage Kue in your Node.js application for efficient job queue management. The prioritization, delayed jobs, and processing mechanisms provided by Kue make it an indispensable tool for many use cases.

Hash: 4555a0b49453e7e3eeecc511fac9c38f5d24a31c97d21d77a4fd9da0754965bc

Leave a Reply

Your email address will not be published. Required fields are marked *