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