queuex-sdk
Version:
A TypeScript-based queue management SDK with Redis support
29 lines (28 loc) • 1.2 kB
TypeScript
import { Worker } from './services/worker';
import { Job, JobOptions, JobState } from './models/job';
import { Queue, QueueOptions } from './models/queue';
export type QueueXEvent = 'jobCompleted' | 'jobFailed' | 'jobDelayed' | 'jobStarted' | 'jobPending' | 'jobReady';
export interface QueueXConfig {
redisConnection: string;
defaultConcurrency?: number;
}
/**
* Main entry point for QueueX SDK, managing queues and workers.
*/
export declare class QueueX {
private queueManager;
private storage;
private workers;
private eventEmitter;
constructor(config: QueueXConfig);
createQueue(name: string, options?: QueueOptions): Promise<Queue>;
enqueue(queueName: string, data: any, options?: JobOptions): Promise<Job>;
unscheduleJob(jobId: string): Promise<void>;
updateJobDelay(jobId: string, newDelay: number): Promise<Job>;
startWorker(queueName: string, processor: (job: Job) => Promise<any>, concurrency?: number): Worker;
shutdown(): Promise<void>;
on(event: QueueXEvent, listener: (job: Job) => void): void;
private emitEvent;
getEvents(jobId: string): Promise<string[]>;
}
export { Job, JobOptions, JobState, Queue, QueueOptions };