UNPKG

@cleotasks/core

Version:

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

47 lines (46 loc) 1.68 kB
import { Worker as BullWorker } from "bullmq"; import { WorkerConfig, WorkerMetrics } from "../types/interfaces"; import { TaskObserver } from "../observers/taskObserver"; import { QueueManager } from "../queue/queueManager"; export declare class Worker extends BullWorker { private registeredTasks; private observer; private queueManager; private _workerId; private _queueName; private redis; private metricsKey; private activeTasksKey; private statusKey; private lastHeartbeatKey; private taskHistoryKey; workersKey: string; private taskHistoryService; private instanceId; constructor(queueName: string, config?: WorkerConfig, instanceId?: string); private JobProcessor; private initializeWorkers; private initializeMetrics; private startHeartbeat; private updateMetrics; private addActiveTask; private removeActiveTask; private addTaskHistory; getTaskHistory(limit?: number): Promise<any[]>; getTaskHistoryById(taskId: string, limit?: number): Promise<any[]>; getGlobalTaskHistory(limit?: number): Promise<any[]>; private getAverageProcessingTime; getMetrics(): Promise<WorkerMetrics>; getMetricsHistory(): Promise<(WorkerMetrics & { timestamp: string; })[]>; getActiveTasks(): Promise<string[]>; getStatus(): Promise<string>; setQueueManager(queueManager: QueueManager): void; getTaskHandler(taskId: string): Function | undefined; setObservers(observer: TaskObserver): void; registerTask(name: string, handler: Function): void; getRegisteredTasks(): string[]; get queue(): string; get workerId(): string; }