peanar
Version:
A job queue for Node.js based on RabbitMQ
37 lines (36 loc) • 1.3 kB
TypeScript
import { IConnectionParams } from 'ts-amqp/dist/interfaces/Connection';
import ChannelPool from 'ts-amqp/dist/classes/ChannelPool';
import { IExchange } from 'ts-amqp/dist/interfaces/Exchange';
import { IQueue, IBinding } from 'ts-amqp/dist/interfaces/Queue';
import { IMessage } from 'ts-amqp/dist/interfaces/Basic';
interface IBrokerOptions {
connection?: IConnectionParams;
poolSize: number;
prefetch?: number;
}
/**
* Peanar's broker adapter
*/
export default class PeanarBroker {
private config;
private conn?;
private _connectPromise?;
pool?: ChannelPool;
constructor(config: IBrokerOptions);
private _connect;
/**
* Initializes adapter connection and channel
*/
connect: () => Promise<void>;
shutdown(): Promise<void>;
queues(queues: IQueue[]): Promise<import("ts-amqp/dist/interfaces/Queue").IQueueDeclareResponse[]>;
exchanges(exchanges: IExchange[]): Promise<void[]>;
bindings(bindings: IBinding[]): Promise<void[]>;
consume(queue: string): Promise<import("ts-amqp/dist/classes/Consumer").default>;
consumeOver(queues: string[]): Promise<{
queue: string;
consumer: import("ts-amqp/dist/classes/Consumer").default;
}>[];
publish(message: IMessage<unknown>): Promise<boolean>;
}
export {};