rocketmq-client-nodejs
Version:
RocketMQ Node.js Client
97 lines • 7.88 kB
JavaScript
;
/**
* 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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