func loadgen()

in resources/templates/goad-cdk/load-gen/loadgen.go [384:407]


func loadgen(control controlData) {
	timeStart := time.Now()
	rlimitValidator(control.ConnectionsPerSecond)
	netTransport := &http.Transport{
		Dial: (&net.Dialer{
			Timeout: time.Duration(control.ConnectionTimeoutMilliseconds) * time.Millisecond,
		}).Dial,
		TLSHandshakeTimeout: time.Duration(control.TlsTimeoutMilliseconds) * time.Millisecond,
		MaxIdleConns:        control.ConnectionsPerSecond,
		MaxConnsPerHost:     control.ConnectionsPerSecond,
		MaxIdleConnsPerHost: control.ConnectionsPerSecond,
	}
	netClient := &http.Client{
		Timeout:   time.Duration(control.TotalTimeoutMilliseconds) * time.Millisecond,
		Transport: netTransport,
	}
	for ii := 0; ii < control.ExperimentDurationSeconds; ii++ {
		go launcher(netClient, ii, control.ConnectionTargetUrl, control.ConnectionsPerSecond)
		time.Sleep(time.Duration(control.ReportingMilliseconds) * time.Millisecond)
	}
	fmt.Printf("LoadGen ran for %s\n", time.Since(timeStart))
	// time.Sleep(1 * time.Second)
	fmt.Println("That's all for now!")
}