@cleotasks/core
Version:
A distributed task queue system for Node.js, inspired by Celery and BullMQ
63 lines (62 loc) • 1.75 kB
TypeScript
import { QueueManager } from "../queue/queueManager";
import { WorkerConfig } from "../types/interfaces";
import { RedisInstance } from "../config/redis";
/**
* Worker mode for Cleo - processes jobs from Redis queues
* Perfect for Bun background processes that consume and process tasks
*/
export declare class CleoWorker {
private static instances;
protected queueManager: QueueManager | null;
private isConfigured;
private readonly instanceId;
private isWorkerMode;
private workers;
constructor(instanceId?: RedisInstance);
static getInstance(instanceId?: RedisInstance): CleoWorker;
configure(config: {
redis: {
host: string;
port: number;
password?: string;
tls?: boolean;
db?: number;
};
worker?: WorkerConfig;
}): Promise<void>;
getInstanceId(): string;
getQueueManager(): QueueManager;
/**
* Register a task handler for processing
*/
registerTaskHandler(taskName: string, handler: Function, queueName?: string): void;
/**
* Register multiple task handlers at once
*/
registerTaskHandlers(handlers: {
[taskName: string]: {
handler: Function;
queueName?: string;
};
}): void;
/**
* Start processing jobs from all queues
*/
startProcessing(): Promise<void>;
/**
* Stop processing jobs
*/
stopProcessing(): Promise<void>;
/**
* Get worker status
*/
getWorkerStatus(queueName?: string): Promise<any>;
/**
* Get all workers status
*/
getAllWorkersStatus(): Promise<any[]>;
/**
* Check if running in worker mode
*/
isWorkerModeEnabled(): boolean;
}