protected void processRequest(PartitionSelectResult partSelectResult, final StringBuilder sBuilder) {
        final long startTime = System.currentTimeMillis();
        FetchContext taskContext =
                baseConsumer.fetchMessage(partSelectResult, sBuilder);
        if (!taskContext.isSuccess()) {
            if (logger.isDebugEnabled()) {
                logger.debug(sBuilder.append("Fetch message error: partition:")
                        .append(partSelectResult.getPartition().toString()).append(" error is ")
                        .append(taskContext.getErrMsg()).toString());
                sBuilder.delete(0, sBuilder.length());
            }
            return;
        }
        boolean isConsumed = false;
        if (!isShutdown()) {
            if (taskContext.getMessageList() == null
                    || taskContext.getMessageList().isEmpty()) {
                isConsumed = true;
            } else {
                try {
                    final TopicProcessor topicProcessor =
                            baseConsumer.consumeSubInfo.getTopicProcessor(taskContext.getPartition().getTopic());
                    if ((topicProcessor == null) || (topicProcessor.getMessageListener() == null)) {
                        throw new TubeClientException(sBuilder
                                .append("Listener is null for topic ")
                                .append(taskContext.getPartition().getTopic()).toString());
                    }
                    isConsumed = notifyListener(taskContext, topicProcessor, sBuilder);
                } catch (Throwable e) {
                    isConsumed =
                            (!baseConsumer.consumerConfig.isPushListenerThrowedRollBack());
                    logMessageProcessFailed(taskContext, e);
                }
            }
        }
        baseConsumer.rmtDataCache.succRspRelease(taskContext.getPartition().getPartitionKey(),
                taskContext.getPartition().getTopic(), taskContext.getUsedToken(),
                isConsumed, isFilterConsume(taskContext.getPartition().getTopic()),
                taskContext.getCurrOffset(), taskContext.getMaxOffset());

        // Warning if the process time is too long
        long cost = System.currentTimeMillis() - startTime;
        if (cost > 30000) {
            logger.info(sBuilder.append("Consuming Partition; current processing thread ")
                    .append(Thread.currentThread().getName())
                    .append("-->Process[")
                    .append(partSelectResult.getPartition().toString())
                    .append("] cost:").append(cost).append(" Ms").toString());
            sBuilder.delete(0, sBuilder.length());
        }
    }
Process the selected partition result.

@param partSelectResult partition select result
@param sBuilder         a string builder
inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/SimplePushMessageConsumer.java