UNPKG

rocketmq-client-nodejs

Version:
139 lines 13.5 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.RpcClientManager = void 0; const RpcClient_1 = require("./RpcClient"); const RPC_CLIENT_MAX_IDLE_DURATION = 30 * 60000; // 30 minutes const RPC_CLIENT_IDLE_CHECK_PERIOD = 60000; class RpcClientManager { #rpcClients = new Map(); #baseClient; #logger; #clearIdleRpcClientsTimer; constructor(baseClient, logger) { this.#baseClient = baseClient; this.#logger = logger; this.#startUp(); } #startUp() { this.#clearIdleRpcClientsTimer = setInterval(() => { this.#clearIdleRpcClients(); }, RPC_CLIENT_IDLE_CHECK_PERIOD); } #clearIdleRpcClients() { for (const [endpoints, rpcClient] of this.#rpcClients.entries()) { const idleDuration = rpcClient.idleDuration(); if (idleDuration > RPC_CLIENT_MAX_IDLE_DURATION) { rpcClient.close(); this.#rpcClients.delete(endpoints); this.#logger.info('[RpcClientManager] Rpc client has been idle for a long time, endpoints=%s, idleDuration=%s, clientId=%s', endpoints, idleDuration, RPC_CLIENT_MAX_IDLE_DURATION, this.#baseClient.clientId); } } } #getRpcClient(endpoints) { let rpcClient = this.#rpcClients.get(endpoints); if (!rpcClient) { rpcClient = new RpcClient_1.RpcClient(endpoints, this.#baseClient.sslEnabled); this.#rpcClients.set(endpoints, rpcClient); } return rpcClient; } close() { for (const [endpoints, rpcClient] of this.#rpcClients.entries()) { rpcClient.close(); this.#rpcClients.delete(endpoints); } clearInterval(this.#clearIdleRpcClientsTimer); } async queryRoute(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.queryRoute(request, metadata, duration); } async heartbeat(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.heartbeat(request, metadata, duration); } async sendMessage(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.sendMessage(request, metadata, duration); } async queryAssignment(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.queryAssignment(request, metadata, duration); } async receiveMessage(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.receiveMessage(request, metadata, duration); } async ackMessage(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.ackMessage(request, metadata, duration); } async forwardMessageToDeadLetterQueue(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.forwardMessageToDeadLetterQueue(request, metadata, duration); } async pullMessage(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.pullMessage(request, metadata, duration); } async updateOffset(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.updateOffset(request, metadata, duration); } async getOffset(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.getOffset(request, metadata, duration); } async queryOffset(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.queryOffset(request, metadata, duration); } async endTransaction(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.endTransaction(request, metadata, duration); } telemetry(endpoints, metadata) { const rpcClient = this.#getRpcClient(endpoints); return rpcClient.telemetry(metadata); } async changeInvisibleDuration(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.changeInvisibleDuration(request, metadata, duration); } async notifyClientTermination(endpoints, request, duration) { const rpcClient = this.#getRpcClient(endpoints); const metadata = this.#baseClient.getRequestMetadata(); return await rpcClient.notifyClientTermination(request, metadata, duration); } } exports.RpcClientManager = RpcClientManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjQ2xpZW50TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvUnBjQ2xpZW50TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFlSCwyQ0FBd0M7QUFHeEMsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsYUFBYTtBQUM5RCxNQUFNLDRCQUE0QixHQUFHLEtBQUssQ0FBQztBQUUzQyxNQUFhLGdCQUFnQjtJQUMzQixXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFDOUMsV0FBVyxDQUFhO0lBQ3hCLE9BQU8sQ0FBVTtJQUNqQix5QkFBeUIsQ0FBaUI7SUFFMUMsWUFBWSxVQUFzQixFQUFFLE1BQWU7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixLQUFLLE1BQU0sQ0FBRSxTQUFTLEVBQUUsU0FBUyxDQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5QyxJQUFJLFlBQVksR0FBRyw0QkFBNEIsRUFBRSxDQUFDO2dCQUNoRCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxD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