@cleotasks/core
Version:
A distributed task queue system for Node.js, inspired by Celery and BullMQ
47 lines (46 loc) • 1.68 kB
TypeScript
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;
}