func consume(queue *lang.Queue) { e := ewma.NewMovingAverage() for { old_len := queue.Len() time.Sleep(1000 * time.Millisecond) new_len := queue.Len() msg_cnt := float64(new_len - old_len) e.Add(msg_cnt) str := fmt.Sprintf("Msg cnt: %v | Msg send: %v | ewma: %v", new_len, msg_cnt, e.Value()) fmt.Println(str) } }