ctripcorp/kbear

oldConsumerHolder.getConsumer()已经执行close(),可为何还要assign()

xinzhuxiansheng opened this issue · 0 comments

//已经close
closeConsumer(oldConsumerHolder);

        ConsumerHolder newConsumerHolder = getOrAddConsumer(topicId);
        if (oldConsumerHolder.getAssignments() != null) {
            newConsumerHolder.setAssignments(oldConsumerHolder.getAssignments());

// oldCOnsumerHolder.getConsumer() 没必须要assign了吧,作者,这里是笔误? 有点没太明白
oldConsumerHolder.getConsumer().assign(oldConsumerHolder.getAssignments());
} else if (oldConsumerHolder.getConsumerRebalanceListener() != null) {
newConsumerHolder.setConsumerRebalanceListener(oldConsumerHolder.getConsumerRebalanceListener());
newConsumerHolder.getConsumer().subscribe(Arrays.asList(topicId),
oldConsumerHolder.getConsumerRebalanceListener());
} else {
newConsumerHolder.getConsumer().subscribe(Arrays.asList(topicId));
}