func subWorker(mq queue.MessageQueue, td time.Duration, line string, rdyChan chan int, goChan chan int) { rdyChan <- 1 <-goChan var msgCount int64 endTime := time.Now().Add(td) for { _, _, err := mq.Pop(line) if err != nil { // log.Printf("mq pop error: %s\n", err) } msgCount++ if time.Now().After(endTime) { break } } atomic.AddInt64(&totalMsgCount, msgCount) }