示例#1
0
func (s *Scheme) RunWriter(writer factory.Writer) {
	if s.warmupMessagesPerRun > 0 {
		logs.Logger.Info("Writing %d warmup messages", s.warmupMessagesPerRun)
	}

	for i := 0; i < s.warmupMessagesPerRun; i++ {
		writer.Write(s.buffer)
	}

	if s.warmupMessagesPerRun > 0 {
		time.Sleep(s.warmupWait)
	}

	logs.Logger.Info("Starting writing %d messages...", s.messagesPerRun)
	startTime := time.Now()
	for i := 0; i < s.messagesPerRun; i++ {
		s.countMessage(writer.Write(s.buffer))
	}
	s.runTime = time.Now().Sub(startTime)
	logs.Logger.Info("Finished.")

	err := writer.Close()
	if err != nil {
		logs.Logger.Warning("Error closing writer, %s", err.Error())
	}

	s.outputReport()
}