UNPKG

@backgroundjs/core

Version:

An extendible background job queue for js/ts applications

47 lines 1.51 kB
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