in resources/templates/goad-redux/go-lambda/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!")
}