UNPKG

vulcain-corejs

Version:
61 lines (60 loc) 2.06 kB
import { IActionBusAdapter, IEventBusAdapter } from '../bus/busAdapter'; import { EventData } from "./messageBus"; import { RequestData } from "../pipeline/common"; export declare class RabbitAdapter implements IActionBusAdapter, IEventBusAdapter { private address; private eventHandlers; private channel; private initialized; private ignoreInputMessages; constructor(address: string); open(): Promise<void>; pauseReception(): void; resumeReception(): void; stopReception(): void; dispose(): void; /** * Send domain event (event raises by an action) * Domain events are shared by all services of any domains * * @param {string} domain * @param {EventData} event * * @memberOf RabbitAdapter */ sendEvent(domain: string, event: EventData): void; private createSourceName(domain); private createEventQueueName(domain, key?); /** * Listening for domain events * * @param {string} domain * @param {Function} handler * @param {string} queuename * * If queuename is set, event are take into account by only one instance and a ack is send if the process complete sucessfully * else event is distributed to every instance with no ack */ consumeEvents(domain: string, handler: (event: EventData) => void, distributionKey?: string): void; /** * Task = asynchronous action * Shared by the current service instances * * @param {string} domain * @param {string} serviceId * @param {ActionData} command * * @memberOf RabbitAdapter */ publishTask(domain: string, serviceId: string, command: RequestData): void; /** * Listening for asynchronous task * * @param {string} domain * @param {string} serviceId * @param {Function} handler * * @memberOf RabbitAdapter */ consumeTask(domain: string, serviceId: string, handler: (event: RequestData) => void): void; }