UNPKG

background-process-js

Version:
38 lines (37 loc) 1.31 kB
import { EventEmitter } from "node:events"; export interface ConsumerConfig { hasDeadQueue: boolean; maxReceivedMessages: number; continuouslyPolling: boolean; timeoutAfterEndingPollingInMilliseconds: number; } export declare enum Events { STOP = "stop", DEAD = "dead", CATCH = "catch", FINISH = "finish", PROCESS = "process" } export type ProcessHook<T> = (data: { messages: T[]; scalingId: string; }) => Promise<void>; export declare abstract class Consumer<MessagesType> extends EventEmitter { private readonly config; private stopedProcess; private processToStop; private needStopProcess; private stopPromiseResolver; constructor(config: ConsumerConfig); protected abstract getMessages(): Promise<MessagesType[]>; protected abstract deleteMessages(messages: MessagesType[]): Promise<void>; protected abstract markAsDeadMessages(messages: MessagesType[]): Promise<void>; finish(scalingId: string, messages: MessagesType[]): void; dead(scalingId: string, messages: MessagesType[]): void; stop(): Promise<unknown>; catch(err: Error): Promise<void>; process(hook: ProcessHook<MessagesType>): void; poll(amount?: number): Promise<void>; private considerStopedProcess; private scalablePolling; }