@backgroundjs/core
Version:
An extendible background job queue for js/ts applications
47 lines • 1.51 kB
TypeScript
import { Job } from "../types.js";
import { JobQueue } from "./job-queue.js";
import { RedisStorage } from "../storage/redis-storage.js";
/**
* DistributedJobQueue extends JobQueue to provide distributed processing
* capabilities across multiple instances/processes using Redis atomic operations.
*/
export declare class RedisJobQueue extends JobQueue {
private readonly redisStorage;
private readonly jobTTL;
/**
* Create a distributed job queue
*
* @param storage - A storage implementation that supports atomic operations
* @param options - Configuration options
*/
constructor(storage: RedisStorage, options?: {
concurrency?: number;
name?: string;
jobTTL?: number;
processingInterval?: number;
maxRetries?: number;
logging?: boolean;
intelligentPolling?: boolean;
minInterval?: number;
maxInterval?: number;
maxEmptyPolls?: number;
loadFactor?: number;
preFetchBatchSize?: number;
});
/**
* Process jobs with prefetching
* Override the parent's protected method
*/
protected processNextBatch(): Promise<void>;
protected refillJobBuffer(): Promise<void>;
/**
* Process a single job with locking
* This is called by the parent class
*/
protected processJob(job: Job): Promise<void>;
/**
* Override stop to handle buffered jobs
*/
stop(): Promise<void>;
}
//# sourceMappingURL=redis-job-queue.d.ts.map