Exemplo n.º 1
0
func Work(workload string, req network.Request, ch_done chan network.Request) {
	var load float64

	switch workload {
	case "none":
		load = 0
	case "low":
		load = gen.ExpFloat64() * c_LOW
	case "medium":
		load = gen.ExpFloat64() * c_MEDIUM
	case "heavy":
		load = gen.ExpFloat64() * c_HEAVY
	default:
		log.Println("Undefined workload ", workload)
		return
	}

	timer := time.NewTimer(time.Millisecond * time.Duration(load))
	for {
		select {
		case <-timer.C:
			req.ExecTimeMs = computeExecutionTime(req.Start)
			ch_done <- req
			return
		default:
			cpuTest()
		}
	}
}