UNPKG

rocketmq-client-nodejs

Version:
97 lines 7.88 kB
"use strict"; /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.PushSubscriptionSettings = void 0; const definition_pb_1 = require("../../proto/apache/rocketmq/v2/definition_pb"); const client_1 = require("../client"); const retry_1 = require("../retry"); const util_1 = require("../util"); class PushSubscriptionSettings extends client_1.Settings { #group; #subscriptionExpressions; #fifo = false; #receiveBatchSize = 32; #longPollingTimeout = 30000; // ms constructor(namespace, clientId, clientType, accessPoint, consumerGroup, requestTimeout, subscriptionExpressions, longPollingTimeout) { super(namespace, clientId, clientType, accessPoint, requestTimeout); this.#group = consumerGroup; this.#subscriptionExpressions = subscriptionExpressions; if (longPollingTimeout !== undefined) { this.#longPollingTimeout = longPollingTimeout; } } isFifo() { return this.#fifo; } getReceiveBatchSize() { return this.#receiveBatchSize; } getLongPollingTimeout() { return this.#longPollingTimeout; } getRetryPolicy() { return this.retryPolicy; } toProtobuf() { const subscription = new definition_pb_1.Subscription() .setGroup((0, util_1.createResource)(this.#group)); for (const [topic, filterExpression] of this.#subscriptionExpressions.entries()) { subscription.addSubscriptions() .setTopic((0, util_1.createResource)(topic)) .setExpression(filterExpression.toProtobuf()); } return new definition_pb_1.Settings() .setClientType(this.clientType) .setAccessPoint(this.accessPoint.toProtobuf()) .setRequestTimeout((0, util_1.createDuration)(this.requestTimeout)) .setSubscription(subscription) .setUserAgent(client_1.UserAgent.INSTANCE.toProtobuf()); } sync(settings) { if (settings.getPubSubCase() !== definition_pb_1.Settings.PubSubCase.SUBSCRIPTION) { return; } const subscription = settings.getSubscription(); if (subscription) { this.#fifo = subscription.getFifo() ?? false; this.#receiveBatchSize = subscription.getReceiveBatchSize() ?? 32; const longPollingTimeout = subscription.getLongPollingTimeout(); if (longPollingTimeout) { this.#longPollingTimeout = longPollingTimeout.getSeconds() * 1000 + Math.floor(longPollingTimeout.getNanos() / 1000000); } } const backoffPolicy = settings.getBackoffPolicy(); if (backoffPolicy) { switch (backoffPolicy.getStrategyCase()) { case definition_pb_1.RetryPolicy.StrategyCase.EXPONENTIAL_BACKOFF: { const exponential = backoffPolicy.getExponentialBackoff().toObject(); this.retryPolicy = new retry_1.ExponentialBackoffRetryPolicy(backoffPolicy.getMaxAttempts(), exponential.initial?.seconds, exponential.max?.seconds, exponential.multiplier); break; } case definition_pb_1.RetryPolicy.StrategyCase.CUSTOMIZED_BACKOFF: // CustomizedBackoffRetryPolicy not yet implemented in Node.js break; default: break; } } } } exports.PushSubscriptionSettings = PushSubscriptionSettings; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVzaFN1YnNjcmlwdGlvblNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN1bWVyL1B1c2hTdWJzY3JpcHRpb25TZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCxnRkFLc0Q7QUFFdEQsc0NBQWdEO0FBQ2hELG9DQUFzRTtBQUN0RSxrQ0FBeUQ7QUFHekQsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUMzQyxNQUFNLENBQVM7SUFDZix3QkFBd0IsQ0FBZ0M7SUFDakUsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUN2QixtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLO0lBRWxDLFlBQ0UsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsV0FBc0IsRUFDdEIsYUFBcUIsRUFDckIsY0FBc0IsRUFDdEIsdUJBQXNELEVBQ3RELGtCQUEyQjtRQUUzQixLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQzVCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxj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