redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
22 lines • 1.17 kB
TypeScript
import { ICallback } from '../async/index.js';
import { Runnable } from '../runnable/index.js';
import { ILogger } from '../logger/index.js';
import { IBackoffConfig, IBackoffParsedConfig } from './types/index.js';
export declare abstract class Backoff extends Runnable {
private timer;
protected readonly config: IBackoffParsedConfig;
protected readonly logger: ILogger;
protected attempts: number;
constructor(logger: ILogger, config?: IBackoffConfig);
protected runTask<TResult>(task: (cb: ICallback<TResult>) => void, callback: ICallback<TResult>): void;
protected scheduleRetry<TResult>(task: (cb: ICallback<TResult>) => void, callback: ICallback<TResult>): void;
protected calculateNextDelay(): number;
protected abstract getNextDelay(baseDelay: number, attempts: number): number;
protected goingUp(): Array<(cb: ICallback<void>) => void>;
protected goingDown(): Array<(cb: ICallback<void>) => void>;
getConfig(): IBackoffParsedConfig;
execute<TResult>(task: (cb: ICallback<TResult>) => void, callback: ICallback<TResult>): void;
getAttempts(): number;
reset(): void;
}
//# sourceMappingURL=backoff.d.ts.map