Files
simple-mail-cleaner/backend/node_modules/bullmq/dist/esm/classes/lock-manager.d.ts
2026-01-22 15:49:12 +01:00

70 lines
2.3 KiB
TypeScript

import { AbortController } from 'node-abort-controller';
import { LockManagerWorkerContext } from '../interfaces';
export interface LockManagerOptions {
lockRenewTime: number;
lockDuration: number;
workerId: string;
workerName?: string;
}
/**
* Manages lock renewal for BullMQ workers.
* It periodically extends locks for active jobs to prevent them from being
* considered stalled by other workers.
*/
export declare class LockManager {
protected worker: LockManagerWorkerContext;
protected opts: LockManagerOptions;
protected lockRenewalTimer?: NodeJS.Timeout;
protected trackedJobs: Map<string, {
token: string;
ts: number;
abortController?: AbortController;
}>;
protected closed: boolean;
constructor(worker: LockManagerWorkerContext, opts: LockManagerOptions);
/**
* Starts the lock manager timers for lock renewal.
*/
start(): void;
protected extendLocks(jobIds: string[]): Promise<void>;
private startLockExtenderTimer;
/**
* Stops the lock manager and clears all timers.
*/
close(): Promise<void>;
/**
* Adds a job to be tracked for lock renewal.
* Returns an AbortController if shouldCreateController is true, undefined otherwise.
*/
trackJob(jobId: string, token: string, ts: number, shouldCreateController?: boolean): AbortController | undefined;
/**
* Removes a job from lock renewal tracking.
*/
untrackJob(jobId: string): void;
/**
* Gets the number of jobs currently being tracked.
*/
getActiveJobCount(): number;
/**
* Checks if the lock manager is running.
*/
isRunning(): boolean;
/**
* Cancels a specific job by aborting its signal.
* @param jobId - The ID of the job to cancel
* @param reason - Optional reason for the cancellation
* @returns true if the job was found and cancelled, false otherwise
*/
cancelJob(jobId: string, reason?: string): boolean;
/**
* Cancels all tracked jobs by aborting their signals.
* @param reason - Optional reason for the cancellation
*/
cancelAllJobs(reason?: string): void;
/**
* Gets a list of all tracked job IDs.
* @returns Array of job IDs currently being tracked
*/
getTrackedJobIds(): string[];
}