UNPKG

@cleotasks/core

Version:

A distributed task queue system for Node.js, inspired by Celery and BullMQ

63 lines (62 loc) 1.75 kB
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; }