UNPKG

@queuedash/api

Version:

A stunning, sleek dashboard for Bull, BullMQ, and Bee-Queue

104 lines 3.62 kB
import type { RedisInfo } from "redis-info"; export type JobOptions = { priority?: number; attempts?: number; delay?: number; lifo?: boolean; timeout?: number; removeOnComplete?: boolean | number; removeOnFail?: boolean | number; repeat?: { count?: number; pattern?: string; every?: number; limit?: number; }; }; export type AdaptedJob = { id: string; name: string; data: Record<string, unknown>; opts: JobOptions; createdAt: Date; processedAt: Date | null; finishedAt: Date | null; failedReason?: string; stacktrace?: string[]; retriedAt: Date | null; returnValue?: unknown; }; export type JobCounts = Partial<Record<string, number>>; export type FeatureSupport<SupportedStatus extends string = string> = { pause: boolean; resume: boolean; clean: boolean | { supportedStatuses: SupportedStatus[]; }; retry: boolean; promote: boolean; logs: boolean; schedulers: boolean; flows: boolean; priorities: boolean; empty: boolean; metrics: boolean; statuses: SupportedStatus[]; }; export type SchedulerInfo = { key: string; name: string; id?: string | null; iterationCount?: number; limit?: number; endDate?: number; tz?: string; pattern?: string; every?: number; next?: number; template?: { data?: Record<string, unknown>; }; }; export type QueueMetrics = { data: number[]; count: number; meta: { count: number; prevTS: number; prevCount: number; }; }; export declare abstract class QueueAdapter<SupportedStatus extends string = string, CleanableStatus extends SupportedStatus = SupportedStatus> { protected displayName: string; protected jobNameFn?: (data: Record<string, unknown>) => string; constructor(displayName: string, jobNameFn?: (data: Record<string, unknown>) => string); abstract getName(): string; abstract getType(): "bull" | "bullmq" | "bee" | "groupmq"; getDisplayName(): string; abstract supports: FeatureSupport<SupportedStatus>; abstract getJobCounts(): Promise<JobCounts>; abstract isPaused(): Promise<boolean>; abstract pause(): Promise<void>; abstract resume(): Promise<void>; abstract empty(): Promise<void>; abstract clean(status: CleanableStatus, graceMs: number): Promise<void>; abstract getRedisInfo(): Promise<RedisInfo & { maxclients: string; }>; abstract getJobs(status: SupportedStatus, start: number, end: number): Promise<AdaptedJob[]>; abstract getJob(jobId: string): Promise<AdaptedJob | null>; abstract addJob(data: Record<string, unknown>, opts?: Record<string, unknown>): Promise<AdaptedJob>; abstract removeJob(jobId: string): Promise<void>; abstract retryJob(jobId: string): Promise<void>; abstract promoteJob(jobId: string): Promise<void>; abstract discardJob(jobId: string): Promise<void>; abstract getJobLogs(jobId: string): Promise<string[] | null>; getSchedulers?(): Promise<SchedulerInfo[]>; addScheduler?(name: string, opts: Record<string, unknown>, template: Record<string, unknown>): Promise<void>; removeScheduler?(key: string): Promise<void>; getMetrics?(type: "completed" | "failed", start: number, end: number): Promise<QueueMetrics>; protected getJobName(data: Record<string, unknown>, fallback: string): string; supportsStatus(status: SupportedStatus): boolean; canCleanStatus(status: SupportedStatus): status is CleanableStatus; } //# sourceMappingURL=base.adapter.d.ts.map