PostsIntroducing Cleo: Advanced Task Queue Management System 🚀

Introducing Cleo: Advanced Task Queue Management System 🚀

2 min read
by Fofsinx

Discover Cleo, a powerful Redis-based distributed task queue system with advanced group processing capabilities, real-time monitoring, and sophisticated task orchestration.

Introducing Cleo: Advanced Task Queue Management System 🚀

We're excited to introduce Cleo, a powerful Redis-based distributed task queue system! Built with TypeScript and powered by BullMQ, Cleo brings advanced group processing capabilities and real-time monitoring to your task management needs.

🌟 Core Features

Group Processing

@QueueClass({
  defaultOptions: {
    priority: TaskPriority.NORMAL,
    maxRetries: 3,
    group: "notifications",
  },
  queue: "notifications",
})
class NotificationService {
  @task({
    id: "send-email",
    priority: TaskPriority.HIGH,
  })
  async sendEmail(data: { email: string }) {
    // Email sending logic
  }
}

Processing Strategies

// Configure different processing strategies
queueManager.setGroupProcessingStrategy(GroupProcessingStrategy.ROUND_ROBIN);
queueManager.setGroupProcessingStrategy(GroupProcessingStrategy.FIFO);
queueManager.setGroupProcessingStrategy(GroupProcessingStrategy.PRIORITY);

Real-time Monitoring

const queueManager = cleo.getQueueManager();
 
queueManager.onTaskEvent(ObserverEvent.STATUS_CHANGE, (taskId, status, data) => {
  console.log(`Task ${taskId} status: ${status}`);
});
 
queueManager.onTaskEvent(ObserverEvent.GROUP_CHANGE, (taskId, status, data) => {
  console.log(`Group operation: ${data.operation}`);
});

🚀 Getting Started

import { Cleo } from "@cleotasks/core";
 
const cleo = Cleo.getInstance();
cleo.configure({
  redis: {
    host: "localhost",
    port: 6379,
    password: "cleosecret",
  },
  worker: {
    concurrency: 4,
    queues: [
      {
        name: "default",
        priority: TaskPriority.NORMAL,
      },
    ],
  },
});

🎯 What's Next?

We're actively developing Cleo with exciting features planned:

  • GraphQL API for task management
  • Kubernetes integration
  • Machine learning powered scheduling
  • Enhanced dashboard features

Join us in building the future of task processing!

Fofsinx

Fofsinx

Software Engineer | Writer | Designer