UNPKG

peanar

Version:

A job queue for Node.js based on RabbitMQ

54 lines (53 loc) 1.67 kB
import 'colors'; import { Transform, TransformCallback } from 'stream'; import PeanarApp, { IPeanarRequest } from './app'; import { IDelivery } from 'ts-amqp/dist/interfaces/Basic'; import PeanarJob from './job'; import CloseReason from 'ts-amqp/dist/utils/CloseReason'; import { Channel } from 'amqplib'; export type IWorkerResult = { status: 'SUCCESS'; job: PeanarJob; result: unknown; } | { status: 'FAILURE'; job: PeanarJob; error: unknown; }; export interface IDeathInfo { count: bigint; reason: string; queue: string; time: bigint; exchange: string; 'routing-keys': string[]; } interface WorkerOptions { logger?: (msg: string) => void; } export default class PeanarWorker extends Transform { private app; private _channel; private queue; private n; private state; private activeJob?; private destroy_cb?; private _destroy_timeout?; private _shutdown_timeout; private _channel_lost; logger: (message?: any, ...optionalParams: any[]) => void; constructor(app: PeanarApp, channel: Channel, queue: string, options?: WorkerOptions); get channel(): Channel; set channel(ch: Channel); onChannelClosed: (err: CloseReason) => void; shutdown(timeout?: number): Promise<void>; _destroy(error: Error | null, callback: (error: Error | null) => void): void; log(msg: string): void; getJobDefinition(name: string): import("./app").IPeanarJobDefinition | undefined; _parseBody(body: Buffer): IPeanarRequest | null; private _getJob; private run; _transform(delivery: IDelivery, _encoding: string, cb: TransformCallback): void; } export {};