@dr-coton/celery-node
Version:
celery written in nodejs
40 lines (39 loc) • 1.39 kB
TypeScript
import * as amqplib from "amqplib";
import { CeleryBroker } from ".";
import { Message } from "../message";
export default class AMQPBroker implements CeleryBroker {
connect: Promise<amqplib.Connection>;
channel: Promise<amqplib.Channel>;
queue: string;
/**
* AMQP broker class
* @constructor AMQPBroker
* @param {string} url the connection string of amqp
* @param {object} opts the options object for amqp connect of amqplib
* @param {string} queue optional. the queue to connect to.
*/
constructor(url: string, opts: any, queue?: string);
/**
* @method AMQPBroker#isReady
* @returns {Promise} promises that continues if amqp connected.
*/
isReady(): Promise<amqplib.Channel>;
/**
* @method AMQPBroker#disconnect
* @returns {Promise} promises that continues if amqp disconnected.
*/
disconnect(): Promise<void>;
/**
* @method AMQPBroker#publish
*
* @returns {Promise}
*/
publish(body: object | [Array<any>, object, object], exchange: string, routingKey: string, headers: object, properties: object): Promise<boolean>;
/**
* @method AMQPBroker#subscribe
* @param {String} queue
* @param {Function} callback
* @returns {Promise}
*/
subscribe(queue: string, callback: (message: Message) => void): Promise<amqplib.Replies.Consume>;
}