2.1.0 • Published 7 months ago

@itcutives/queue-helper v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

Queue Helper

- Easy swappable abstract interface for BeeQueue and Bull.

Install

npm i @itcutives/queue-helper

Bull

const Bull = require('@itcutives/queue-helper/src/Bull');

enqueue

Note: Does not support enqueueAt function

bull.enqueue(data);

BeeQueue

const BeeQueue = require('@itcutives/queue-helper/src/BeeQueue');

queue task

BeeQueue.enqueue(data);
BeeQueue.enqueueAt(data, timestamp);

Example

Task

const BeeQueue = require('@itcutives/queue-helper/src/BeeQueue');

class SendMessage extends BeeQueue {
  static get NAME() {
    return 'SendMessage';
  }

  // processing function
  static Process(job) {
    return new Promise((resolve) => {
      const seconds = 10;
      const timeout = seconds * 1000;
      setTimeout(() => {
        resolve(JSON.stringify({ [SendMessage.NAME]: job.data }));
      }, timeout);
    });
  }
}

module.exports = SendMessage;

Queuing task jobs

  • isWorker: flag to distinguish between worker and scheduler processes
const SendMessage = require('./tasks/SendMessage');

const config = {
  redis: {
    port: '6379',
    host: '192.168.1.1',
    db: '0',
    password: '',
  },
  isWorker: false,
};

const sendMessage = new SendMessage(config);

(async () => {
  // adding to queue
  await sendMessage.enqueue({ messageId: 1 });
  
  // scheduling
  const dt = new Date();
  dt.setSeconds(dt.getSeconds() + 40);
  await sendMessage.enqueueAt({ messageId: 2 }, dt);
  
  await sendMessage.close();
})();

Setting up worker

  • removeOnSuccess: Enable to have this worker automatically remove its successfully completed jobs from Redis, so as to keep memory usage down.
  • activateDelayedJobs: Activate delayed jobs once they've passed their delayUntil timestamp.
  • concurrency: sets the maximum number of simultaneously active jobs for this processor. It defaults to 1.
const SendMessage = require('./tasks/SendMessage');

const config = {
  redis: {
    port: '6379',
    host: '192.168.1.254',
    db: '0',
    password: '',
  },
  removeOnSuccess: true,
  activateDelayedJobs: true,
  concurrency: 10,
};

const sendMessage = new SendMessage(config);

More Documentation

Bull

BeeQueue

2.1.0

7 months ago

2.0.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago