0.0.5 • Published 6 years ago
@jasrusable/conveyor v0.0.5
Conveyor
A fast, robust and extensible distributed task/job queue for Node.js.
const {
  createQueueManager,
  createQueueHandler,
} = require('@jasrusable/conveyor');
const main = async () => {
  const queueName = 'my-queue';
  const redisConfig = { host: '127.0.0.1', port: 6379 };
  const manager = await createQueueManager({ queue: queueName, redisConfig });
  await manager.putTask({ data: { x: 1, y: 2 } });
  const handler = await createQueueHandler({
    queue: queueName,
    redisConfig,
    handler: ({ task }) => {
      console.log(`Processing task: ${task.id}`);
      return task.x + task.y;
    },
  });
};
main();Introduction
Conveyor is a asynchronous, distributed task/job queue for Node.js, powered by Redis. Conveyor is a general purpose task queue designed for both short lived, and long running tasks.
Conveyor is:
Installation
npm:
npm install --save @jasrusable/conveyoryarn:
yarn add @jasrusable/conveyorYou will also need Redis >=3.2
Features
- Create and process tasks/jobs
- Task retries
 - Task expiries
 - Task retry strategies
 
 - Concurrent handler/worker processing
 - Simple and extensible design
 - Async/await/Promise APIs
 - Robust
- Atomic operations
 - At-least-once task/job delivery
 - High test code coverage
 
 - High performance
- Minimised network overhead using Redis pipelining and multi commands
 - Uses Redis Lua scripting for improved performance and atomicity