func pubWorker(mq queue.MessageQueue, td time.Duration, data []byte, topic string, rdyChan chan int, goChan chan int) { rdyChan <- 1 <-goChan var msgCount int64 endTime := time.Now().Add(td) for { err := mq.Push(topic, data) if err != nil { log.Printf("mq push error: %s\n", err) } msgCount++ if time.Now().After(endTime) { break } } atomic.AddInt64(&totalMsgCount, msgCount) }