API Reference
Complete API documentation for Cleo, including configuration options, task definitions, worker settings, and monitoring capabilities.
API Reference
Note: Cleo is built on top of BullMQ. For more detailed information about underlying queue features and options, please refer to the BullMQ documentation.
Core Configuration
Cleo.getInstance()
import { Cleo } from "@cleotasks/core";
const cleo = Cleo.getInstance();
cleo.configure()
cleo.configure({
redis: {
host: string;
port: number;
password: string;
tls?: boolean;
},
worker: {
concurrency: number;
queues: {
name: string;
priority: TaskPriority;
}[];
}
});
Decorators
@task Decorator
import { task } from "@cleotasks/core/decorators/task";
@task({
id?: string;
priority?: TaskPriority;
queue?: string;
maxRetries?: number;
retryDelay?: number;
})
@QueueClass Decorator
import { QueueClass } from "@cleotasks/core/decorators/class";
@QueueClass({
defaultOptions: {
priority?: TaskPriority;
maxRetries?: number;
retryDelay?: number;
group?: string;
},
queue?: string;
})
Queue Management
QueueManager
const queueManager = cleo.getQueueManager();
// Event Handling
queueManager.onTaskEvent(event: ObserverEvent, callback: TaskEventCallback);
queueManager.offTaskEvent(event: ObserverEvent);
// Group Management
queueManager.setGroupProcessingStrategy(strategy: GroupProcessingStrategy);
queueManager.setGroupPriority(groupId: string, priority: number);
queueManager.getGroup(groupId: string): Promise<Group>;
Task Events
enum ObserverEvent {
STATUS_CHANGE = "status_change",
TASK_ADDED = "task_added",
TASK_COMPLETED = "task_completed",
TASK_FAILED = "task_failed",
GROUP_CHANGE = "group_change"
}
Group Processing
enum GroupProcessingStrategy {
ROUND_ROBIN = "round_robin",
FIFO = "fifo",
PRIORITY = "priority"
}
Types
TaskOptions
interface TaskOptions {
id?: string;
priority?: TaskPriority;
queue?: string;
maxRetries?: number;
retryDelay?: number;
group?: string;
}
QueueClassOptions
interface QueueClassOptions {
defaultOptions?: TaskOptions;
queue?: string;
}
For more detailed information about underlying queue features, job options, and advanced configurations, please refer to the BullMQ documentation.