diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3dcce593..67354670 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,7 +3,8 @@ ## v0.3.0 (2021-12-22) - feat: implement `transaction` mechanism for load test -- feat: support `--continue-on-failure` flag to continue running next step when failure occurs, default to failfast +- feat: continue running next step when failure occurs with `--continue-on-failure` flag, default to failfast +- feat: spawn workers with `--spawn-rate` flag - refactor: fork [boomer] as sub module - feat: report GA events with version - feat: run load test with the given limit and burst as rate limiter diff --git a/internal/boomer/runner.go b/internal/boomer/runner.go index 1a6f3c81..2ddd6f30 100644 --- a/internal/boomer/runner.go +++ b/internal/boomer/runner.go @@ -117,8 +117,11 @@ func (r *runner) spawnWorkers(spawnCount int, spawnRate float64, quit chan bool, Msg("Spawning workers") atomic.StoreInt32(&r.state, stateSpawning) - // TODO: spawn workers with spawnRate for i := 1; i <= spawnCount; i++ { + // spawn workers with rate limit + sleepTime := time.Duration(1000000/r.spawnRate) * time.Microsecond + time.Sleep(sleepTime) + select { case <-quit: // quit spawning goroutine