concurrent consumption of messages

This commit is contained in:
Gordon 2022-05-20 16:53:35 +08:00
parent aa144b0439
commit 686d77dcc1

View File

@ -397,20 +397,30 @@ func (och *OnlineHistoryConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupS
select { select {
case <-t.C: case <-t.C:
if len(cMsg) >= 0 { if len(cMsg) >= 0 {
ccMsg := make([]*sarama.ConsumerMessage, 0, 500)
for _, v := range cMsg {
ccMsg = append(ccMsg, v)
}
triggerID = utils.OperationIDGenerator() triggerID = utils.OperationIDGenerator()
log.Debug(triggerID, "timer trigger msg consumer start", len(cMsg)) log.Debug(triggerID, "timer trigger msg consumer start", len(cMsg))
och.msgDistributionCh <- Cmd2Value{Cmd: ConsumerMsgs, Value: TriggerChannelValue{ och.msgDistributionCh <- Cmd2Value{Cmd: ConsumerMsgs, Value: TriggerChannelValue{
triggerID: triggerID, cmsgList: cMsg}} triggerID: triggerID, cmsgList: ccMsg}}
sess.MarkMessage(msg, "") sess.MarkMessage(msg, "")
cMsg = cMsg[0:0] cMsg = cMsg[0:0]
log.Debug(triggerID, "timer trigger msg consumer end", len(cMsg)) log.Debug(triggerID, "timer trigger msg consumer end", len(cMsg))
} }
default: default:
if len(cMsg) >= 500 { if len(cMsg) >= 500 {
ccMsg := make([]*sarama.ConsumerMessage, 0, 500)
for _, v := range cMsg {
ccMsg = append(ccMsg, v)
}
triggerID = utils.OperationIDGenerator() triggerID = utils.OperationIDGenerator()
log.Debug(triggerID, "length trigger msg consumer start", len(cMsg)) log.Debug(triggerID, "length trigger msg consumer start", len(cMsg))
och.msgDistributionCh <- Cmd2Value{Cmd: ConsumerMsgs, Value: TriggerChannelValue{ och.msgDistributionCh <- Cmd2Value{Cmd: ConsumerMsgs, Value: TriggerChannelValue{
triggerID: triggerID, cmsgList: cMsg}} triggerID: triggerID, cmsgList: ccMsg}}
sess.MarkMessage(msg, "") sess.MarkMessage(msg, "")
cMsg = cMsg[0:0] cMsg = cMsg[0:0]
log.Debug(triggerID, "length trigger msg consumer end", len(cMsg)) log.Debug(triggerID, "length trigger msg consumer end", len(cMsg))