@ahmedhegazee/nestjs-telescope
Version:
Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling
76 lines (75 loc) • 2.4 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
import { JobWatcherService } from './job-watcher.service';
import { ModuleRef } from '@nestjs/core';
export interface BullJob {
id: string | number;
name: string;
data: any;
opts: any;
progress: number;
returnvalue: any;
failedReason: string;
stacktrace: string[];
attemptsMade: number;
delay: number;
timestamp: number;
processedOn: number;
finishedOn: number;
queue: BullQueue;
}
export interface BullQueue {
name: string;
waiting: () => Promise<BullJob[]>;
active: () => Promise<BullJob[]>;
completed: () => Promise<BullJob[]>;
failed: () => Promise<BullJob[]>;
delayed: () => Promise<BullJob[]>;
paused: () => Promise<BullJob[]>;
getWaiting: () => Promise<BullJob[]>;
getActive: () => Promise<BullJob[]>;
getCompleted: () => Promise<BullJob[]>;
getFailed: () => Promise<BullJob[]>;
getDelayed: () => Promise<BullJob[]>;
getPaused: () => Promise<BullJob[]>;
on: (event: string, callback: Function) => void;
off: (event: string, callback: Function) => void;
getJobCounts: () => Promise<{
waiting: number;
active: number;
completed: number;
failed: number;
delayed: number;
paused: number;
}>;
}
export declare class BullAdapterService implements OnModuleInit {
private readonly jobWatcherService;
private readonly moduleRef;
private readonly logger;
private registeredQueues;
private eventListeners;
constructor(jobWatcherService: JobWatcherService, moduleRef: ModuleRef);
onModuleInit(): Promise<void>;
private discoverQueues;
private findBullQueues;
private findQueuesFromBull;
private findQueuesFromBullMQ;
registerQueue(queue: BullQueue): void;
private setupQueueEventListeners;
private handleJobActive;
private handleJobCompleted;
private handleJobFailed;
private handleJobProgress;
private handleJobStalled;
private handleJobWaiting;
private handleJobDelayed;
private handleJobPaused;
private createJobContext;
updateQueueStats(): Promise<void>;
unregisterQueue(queueName: string): void;
getRegisteredQueues(): string[];
isQueueRegistered(queueName: string): boolean;
getQueueMetrics(queueName: string): Promise<any>;
private serializeJob;
onDestroy(): void;
}