refactor
This commit is contained in:
@@ -51,42 +51,42 @@ func toTopicName(topic *mq_pb.Topic) string {
|
||||
return topicName
|
||||
}
|
||||
|
||||
func (c *Coordinator) AddSubscriber(consumerGroup, consumerGroupInstance string, topic *mq_pb.Topic) *ConsumerGroupInstance {
|
||||
tcg := c.GetTopicConsumerGroups(topic, true)
|
||||
cg, _ := tcg.ConsumerGroups.Get(consumerGroup)
|
||||
func (c *Coordinator) AddSubscriber(initMessage *mq_pb.SubscriberToSubCoordinatorRequest_InitMessage) *ConsumerGroupInstance {
|
||||
tcg := c.GetTopicConsumerGroups(initMessage.Topic, true)
|
||||
cg, _ := tcg.ConsumerGroups.Get(initMessage.ConsumerGroup)
|
||||
if cg == nil {
|
||||
cg = NewConsumerGroup(topic, c.balancer)
|
||||
if !tcg.ConsumerGroups.SetIfAbsent(consumerGroup, cg) {
|
||||
cg, _ = tcg.ConsumerGroups.Get(consumerGroup)
|
||||
cg = NewConsumerGroup(initMessage.Topic, c.balancer)
|
||||
if !tcg.ConsumerGroups.SetIfAbsent(initMessage.ConsumerGroup, cg) {
|
||||
cg, _ = tcg.ConsumerGroups.Get(initMessage.ConsumerGroup)
|
||||
}
|
||||
}
|
||||
cgi, _ := cg.ConsumerGroupInstances.Get(consumerGroupInstance)
|
||||
cgi, _ := cg.ConsumerGroupInstances.Get(initMessage.ConsumerGroupInstanceId)
|
||||
if cgi == nil {
|
||||
cgi = NewConsumerGroupInstance(consumerGroupInstance)
|
||||
if !cg.ConsumerGroupInstances.SetIfAbsent(consumerGroupInstance, cgi) {
|
||||
cgi, _ = cg.ConsumerGroupInstances.Get(consumerGroupInstance)
|
||||
cgi = NewConsumerGroupInstance(initMessage.ConsumerGroupInstanceId)
|
||||
if !cg.ConsumerGroupInstances.SetIfAbsent(initMessage.ConsumerGroupInstanceId, cgi) {
|
||||
cgi, _ = cg.ConsumerGroupInstances.Get(initMessage.ConsumerGroupInstanceId)
|
||||
}
|
||||
}
|
||||
cg.OnAddConsumerGroupInstance(consumerGroupInstance, topic)
|
||||
cg.OnAddConsumerGroupInstance(initMessage.ConsumerGroupInstanceId, initMessage.Topic)
|
||||
return cgi
|
||||
}
|
||||
|
||||
func (c *Coordinator) RemoveSubscriber(consumerGroup, consumerGroupInstance string, topic *mq_pb.Topic) {
|
||||
tcg := c.GetTopicConsumerGroups(topic, false)
|
||||
func (c *Coordinator) RemoveSubscriber(initMessage *mq_pb.SubscriberToSubCoordinatorRequest_InitMessage) {
|
||||
tcg := c.GetTopicConsumerGroups(initMessage.Topic, false)
|
||||
if tcg == nil {
|
||||
return
|
||||
}
|
||||
cg, _ := tcg.ConsumerGroups.Get(consumerGroup)
|
||||
cg, _ := tcg.ConsumerGroups.Get(initMessage.ConsumerGroup)
|
||||
if cg == nil {
|
||||
return
|
||||
}
|
||||
cg.ConsumerGroupInstances.Remove(consumerGroupInstance)
|
||||
cg.OnRemoveConsumerGroupInstance(consumerGroupInstance, topic)
|
||||
cg.ConsumerGroupInstances.Remove(initMessage.ConsumerGroupInstanceId)
|
||||
cg.OnRemoveConsumerGroupInstance(initMessage.ConsumerGroupInstanceId, initMessage.Topic)
|
||||
if cg.ConsumerGroupInstances.Count() == 0 {
|
||||
tcg.ConsumerGroups.Remove(consumerGroup)
|
||||
tcg.ConsumerGroups.Remove(initMessage.ConsumerGroup)
|
||||
}
|
||||
if tcg.ConsumerGroups.Count() == 0 {
|
||||
c.RemoveTopic(topic)
|
||||
c.RemoveTopic(initMessage.Topic)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user