From 41cd0828549cfd5e53fc6499e64f9f20a1d95d4c Mon Sep 17 00:00:00 2001 From: buyuxiang <347586493@qq.com> Date: Thu, 1 Sep 2022 11:02:40 +0800 Subject: [PATCH] fix: hrp boom --run-time setting --- docs/CHANGELOG.md | 6 ++++++ hrp/internal/boomer/runner.go | 27 ++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index afb0344d..802fbe46 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +## v4.2.1 (2022-09-01) + +**go version** + +- fix: hrp boom duration still limited without specifying `--run-time` + ## v4.2.0 (2022-08-21) **go version** diff --git a/hrp/internal/boomer/runner.go b/hrp/internal/boomer/runner.go index 1ca4e39f..506e3dc5 100644 --- a/hrp/internal/boomer/runner.go +++ b/hrp/internal/boomer/runner.go @@ -11,11 +11,12 @@ import ( "time" "github.com/go-errors/errors" - "github.com/httprunner/httprunner/v4/hrp/internal/boomer/grpc/messager" - "github.com/httprunner/httprunner/v4/hrp/internal/builtin" "github.com/jinzhu/copier" "github.com/olekukonko/tablewriter" "github.com/rs/zerolog/log" + + "github.com/httprunner/httprunner/v4/hrp/internal/boomer/grpc/messager" + "github.com/httprunner/httprunner/v4/hrp/internal/builtin" ) const ( @@ -245,7 +246,7 @@ func (r *runner) getSpawnRate() float64 { } func (r *runner) setRunTime(runTime int64) { - atomic.StoreInt64(&r.runTime, time.Now().Unix()+runTime) + atomic.StoreInt64(&r.runTime, runTime) } func (r *runner) getRunTime() int64 { @@ -381,15 +382,15 @@ func (r *runner) runTimeCheck(runTime int64) { if runTime <= 0 { return } + stopTime := time.Now().Unix() + runTime - var ticker = time.NewTicker(time.Second * 3) + ticker := time.NewTicker(time.Second) for { select { case <-r.stopChan: return case <-ticker.C: - nowTime := time.Now().Unix() - if nowTime > runTime { + if time.Now().Unix() > stopTime { r.stop() return } @@ -552,7 +553,7 @@ func (r *runner) getTask() *Task { } func (r *runner) statsStart() { - var ticker = time.NewTicker(reportStatsInterval) + ticker := time.NewTicker(reportStatsInterval) for { select { // record stats @@ -872,7 +873,7 @@ func (r *workerRunner) run() { // notify master that worker is quitting r.onQuiting() - var ticker = time.NewTicker(1 * time.Second) + ticker := time.NewTicker(1 * time.Second) if r.client != nil { // waitting for quit message is sent to master select { @@ -900,7 +901,7 @@ func (r *workerRunner) run() { // heartbeat // See: https://github.com/locustio/locust/commit/a8c0d7d8c588f3980303358298870f2ea394ab93 - var ticker = time.NewTicker(heartbeatInterval) + ticker := time.NewTicker(heartbeatInterval) for { select { case <-ticker.C: @@ -1047,8 +1048,8 @@ func (r *masterRunner) setExpectWorkers(expectWorkers int, expectWorkersMaxWait func (r *masterRunner) heartbeatWorker() { log.Info().Msg("heartbeatWorker, listen and record heartbeat from worker") - var heartBeatTicker = time.NewTicker(heartbeatInterval) - var reportTicker = time.NewTicker(heartbeatLiveness) + heartBeatTicker := time.NewTicker(heartbeatInterval) + reportTicker := time.NewTicker(heartbeatLiveness) for { select { case <-r.closeChan: @@ -1192,8 +1193,8 @@ func (r *masterRunner) run() { if r.autoStart { go func() { log.Info().Msg("auto start, waiting expected workers joined") - var ticker = time.NewTicker(1 * time.Second) - var tickerMaxWait = time.NewTicker(time.Duration(r.expectWorkersMaxWait) * time.Second) + ticker := time.NewTicker(1 * time.Second) + tickerMaxWait := time.NewTicker(time.Duration(r.expectWorkersMaxWait) * time.Second) for { select { case <-r.closeChan: