UNPKG

message-subscriber

Version:

Subscribe to messages at any Cloud Service. Receive messages only by registering a EventEmitter Listener. (AWS SQS, Azure ESQ, Google Tasks)

50 lines 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProcessorQueue = void 0; const async_1 = require("async"); const utils_1 = require("./utils"); class ProcessorQueue { constructor(params) { this._parallelism = params.parallelism; this._queue = this._startQueue(params.queueFunction); } set parallelism(newParallelism) { this._parallelism = newParallelism; this._queue.concurrency = this._parallelism; } get parallelism() { return this._parallelism; } get length() { return this._queue.length(); } get paused() { return this._queue.paused; } _startQueue(queueFunction) { return (0, async_1.queue)(queueFunction, this._parallelism); } push(messages) { this._queue.push(messages); } async drain() { if (!this._queue.started) { await (0, utils_1.wait)(100); // Wait for the subscriber to run if (!this._queue.started) { return Promise.resolve(); } } await this._queue.drain(); } pause() { this._queue.pause(); } resume() { this._queue.resume(); } stop() { this._queue.kill(); } } exports.ProcessorQueue = ProcessorQueue; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc29yUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUHJvY2Vzc29yUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQTJDO0FBQzNDLG1DQUErQjtBQUUvQixNQUFhLGNBQWM7SUFJekIsWUFBWSxNQUFXO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxjQUFzQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRU8sV0FBVyxDQUFDLGFBQWtCO1FBQ3BDLE9BQU8sSUFBQSxhQUFLLEVBQ1YsYUFBYSxFQUNiLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQW1CO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDdkIsTUFBTSxJQUFBLFlBQUksRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztZQUNsRCxJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzFCO1NBQ0Y7UUFFRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBNURELHdDQTREQyJ9