fair-queue
Version:
A fair, queue-based rate-limiting library with configurable selection modes, balancing queue size and wait time to prioritize task processing.
18 lines (17 loc) • 613 B
TypeScript
export type FairQueueConfig = {
/** e.g. 1 year */
initial_duration: number;
debug?: boolean;
/** Selection mode: 'randomized' (default) or 'deterministic' */
mode?: 'randomized' | 'deterministic';
};
export declare function createFairQueue<Task>(config: FairQueueConfig): FairQueue<Task>;
export declare class FairQueue<Task> {
config: FairQueueConfig;
private user_queues;
constructor(config: FairQueueConfig);
enqueue(user_id: string | number, task: Task): void;
dequeue(): Task | null;
dequeue_randomized(): Task | null;
dequeue_deterministic(): Task | null;
}