DocsGetting StartedIntroduction

Introduction to Cleo 🚀

A powerful distributed task queue system for Node.js that makes background job processing a breeze.

Welcome to Cleo! 🎯

Cleo is a modern distributed task queue system for Node.js, designed for reliability and ease of use. It provides a clean decorator-based API for handling background jobs with powerful group processing capabilities.

🌟 Quick Example

import { Cleo } from "@cleotasks/core";
import { task } from "@cleotasks/core/decorators/task";
import { TaskPriority } from "@cleotasks/core/types/enums";
 
// Configure Cleo
const cleo = Cleo.getInstance();
cleo.configure({
  redis: {
    host: "localhost",
    port: 6379,
    password: "cleosecret",
  },
  worker: {
    concurrency: 4,
    queues: [
      {
        name: "send-email",
        priority: TaskPriority.HIGH,
      },
    ],
  },
});
 
// Define a task service
class EmailService {
  @task({
    id: "send-email",
    priority: TaskPriority.HIGH,
    queue: 'send-email',
  })
  sendEmail(input: { email: string }): Promise<string> {
    return Promise.resolve(`Sent to ${input.email}`);
  }
}

✨ Key Features

🔄 Task Processing

  • Decorator-based task definitions
  • Priority queues with multiple levels
  • Group-based task processing
  • Automatic retries and error handling

📊 Monitoring

  • Real-time task status tracking
  • Event-based monitoring system
  • Group statistics and metrics
  • Comprehensive error tracking

🎛️ Processing Strategies

  • Round Robin distribution
  • FIFO (First In, First Out)
  • Priority-based processing
  • Group-based scheduling

🛠️ Developer Experience

  • TypeScript-first design
  • Clean decorator syntax
  • Intuitive configuration
  • Extensive documentation

🚀 Next Steps