UNPKG

@cdp-forge/plugin-pipeline-sdk

Version:
37 lines 1.45 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const pulsar_client_1 = __importDefault(require("pulsar-client")); class ConfigListener { constructor(stage, config) { this.consumer = null; this.pulsar = new pulsar_client_1.default.Client({ serviceUrl: config.pulsar.proxy }); this.config = config; this.stage = stage; } async start() { this.consumer = await this.pulsar.subscribe({ topic: this.config.pipelinemanager.config_topic, subscription: this.config.plugin.name + `plugin-${this.config.pod.name}`, subscriptionType: 'Exclusive', listener: async (msg, msgConsumer) => { console.log(msg.getData().toString()); const cfgMessage = JSON.parse(msg.getData().toString()); if (cfgMessage && cfgMessage.plugin === this.config.plugin.name) { await this.stage.restart(cfgMessage.inputTopic, cfgMessage.outputTopic); } await msgConsumer.acknowledge(msg); }, }); } async stop() { await this.consumer?.close(); await this.pulsar.close(); } } exports.default = ConfigListener; //# sourceMappingURL=ConfigListener.js.map