@casoon/auditmysite
Version:
Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe
81 lines • 2.42 kB
TypeScript
export interface PriorityItem<T = any> {
id: string;
data: T;
priority: number;
timestamp: Date;
attempts: number;
maxAttempts: number;
status: 'pending' | 'processing' | 'completed' | 'failed' | 'retrying';
error?: string;
result?: any;
startedAt?: Date;
completedAt?: Date;
duration?: number;
}
export interface PriorityQueueOptions {
maxSize?: number;
defaultPriority?: number;
maxAttempts?: number;
retryDelay?: number;
enablePriorityBoost?: boolean;
priorityBoostThreshold?: number;
priorityBoostAmount?: number;
}
export interface QueueStats {
total: number;
pending: number;
processing: number;
completed: number;
failed: number;
retrying: number;
averagePriority: number;
averageWaitTime: number;
averageProcessingTime: number;
oldestItem?: PriorityItem;
newestItem?: PriorityItem;
}
export declare class PriorityQueue<T = any> {
private queue;
private processing;
private completed;
private failed;
private options;
private itemIdCounter;
constructor(options?: PriorityQueueOptions);
enqueue(data: T, priority?: number, id?: string): string;
dequeue(): PriorityItem<T> | null;
peek(): PriorityItem<T> | null;
complete(id: string, result?: any): boolean;
fail(id: string, error?: string): boolean;
retry(id: string): boolean;
remove(id: string): boolean;
clear(): void;
getById(id: string): PriorityItem<T> | null;
updatePriority(id: string, newPriority: number): boolean;
getStats(): QueueStats;
getPendingItems(): PriorityItem<T>[];
getProcessingItems(): PriorityItem<T>[];
getCompletedItems(): PriorityItem<T>[];
getFailedItems(): PriorityItem<T>[];
getRetryingItems(): PriorityItem<T>[];
isEmpty(): boolean;
isFull(): boolean;
size(): number;
processingSize(): number;
private findItem;
private sortQueue;
private applyPriorityBoost;
getMaxSize(): number;
setMaxSize(maxSize: number): void;
getDefaultPriority(): number;
setDefaultPriority(priority: number): void;
getMaxAttempts(): number;
setMaxAttempts(maxAttempts: number): void;
enqueueBatch(items: Array<{
data: T;
priority?: number;
id?: string;
}>): string[];
dequeueBatch(count: number): PriorityItem<T>[];
}
//# sourceMappingURL=priority-queue.d.ts.map