UNPKG

rocketmq-client-nodejs-beta

Version:
96 lines 8.77 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.Consumer = void 0; const service_pb_1 = require("../../proto/apache/rocketmq/v2/service_pb"); const message_1 = require("../message"); const exception_1 = require("../exception"); const client_1 = require("../client"); const util_1 = require("../util"); class Consumer extends client_1.BaseClient { consumerGroup; constructor(options) { super(options); this.consumerGroup = options.consumerGroup; } wrapReceiveMessageRequest(batchSize, mq, filterExpression, invisibleDuration, longPollingTimeout) { return new service_pb_1.ReceiveMessageRequest() .setGroup((0, util_1.createResource)(this.consumerGroup)) .setMessageQueue(mq.toProtobuf()) .setFilterExpression(filterExpression.toProtobuf()) .setLongPollingTimeout((0, util_1.createDuration)(longPollingTimeout)) .setBatchSize(batchSize) .setAutoRenew(false) .setInvisibleDuration((0, util_1.createDuration)(invisibleDuration)); } async receiveMessage(request, mq, awaitDuration) { const endpoints = mq.broker.endpoints; const timeout = this.requestTimeout + awaitDuration; let status; const responses = await this.rpcClientManager.receiveMessage(endpoints, request, timeout); const messageList = []; let transportDeliveryTimestamp; for (const response of responses) { switch (response.getContentCase()) { case service_pb_1.ReceiveMessageResponse.ContentCase.STATUS: status = response.getStatus()?.toObject(); break; case service_pb_1.ReceiveMessageResponse.ContentCase.MESSAGE: messageList.push(response.getMessage()); break; case service_pb_1.ReceiveMessageResponse.ContentCase.DELIVERY_TIMESTAMP: transportDeliveryTimestamp = response.getDeliveryTimestamp()?.toDate(); break; default: // this.logger.warn("[Bug] Not recognized content for receive message response, mq={}, " + // "clientId={}, response={}", mq, clientId, response); } } exception_1.StatusChecker.check(status); const messages = messageList.map(message => new message_1.MessageView(message, mq, transportDeliveryTimestamp)); return messages; } async ackMessage(messageView) { const endpoints = messageView.endpoints; const request = new service_pb_1.AckMessageRequest() .setGroup((0, util_1.createResource)(this.consumerGroup)) .setTopic((0, util_1.createResource)(messageView.topic)); request.addEntries() .setMessageId(messageView.messageId) .setReceiptHandle(messageView.receiptHandle); const res = await this.rpcClientManager.ackMessage(endpoints, request, this.requestTimeout); // FIXME: handle fail ack const response = res.toObject(); exception_1.StatusChecker.check(response.status); return response.entriesList; } async invisibleDuration(messageView, invisibleDuration) { const request = new service_pb_1.ChangeInvisibleDurationRequest() .setGroup((0, util_1.createResource)(this.consumerGroup)) .setTopic((0, util_1.createResource)(messageView.topic)) .setReceiptHandle(messageView.receiptHandle) .setInvisibleDuration((0, util_1.createDuration)(invisibleDuration)) .setMessageId(messageView.messageId); const res = await this.rpcClientManager.changeInvisibleDuration(messageView.endpoints, request, this.requestTimeout); const response = res.toObject(); exception_1.StatusChecker.check(response.status); return response.receiptHandle; } } exports.Consumer = Consumer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3VtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3VtZXIvQ29uc3VtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBR0gsMEVBSW1EO0FBQ25ELHdDQUF5QztBQUV6Qyw0Q0FBNkM7QUFDN0Msc0NBQTBEO0FBQzFELGtDQUF5RDtBQU96RCxNQUFzQixRQUFTLFNBQVEsbUJBQVU7SUFDNUIsYUFBYSxDQUFTO0lBRXpDLFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFUyx5QkFBeUIsQ0FBQyxTQUFpQixFQUFFLEVBQWdCLEVBQ3JFLGdCQUFrQyxFQUFFLGlCQUF5QixFQUFFLGtCQUEwQjtRQUN6RixPQUFPLElBQUksa0NBQXFCLEVBQUU7YUFDL0IsUUFBUSxDQUFDLElBQUEscUJBQWMsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDNUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsRCxxQkFBcUIsQ0FBQyxJQUFBLHFCQUFjLEVBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUN6RCxZQUFZLENBQUMsU0FBUyxDQUFDO2FBQ3ZCLFlBQVksQ0FBQyxLQUFLLENBQUM7YUFDbkIsb0JBQW9CLENBQUMsSUFBQSxxQkFBYyxFQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QixFQUFFLEVBQWdCLEVBQUUsYUFBcUI7UUFDcEcsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxD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