From 2cfc26592b8b1e706ac54592386fb6c8802281c2 Mon Sep 17 00:00:00 2001 From: Ibrahim Serdar Acikgoz Date: Tue, 11 Jun 2024 15:22:47 +0200 Subject: [PATCH] address review comments --- .../control/simulcontroller/controller.go | 5 ----- loadtest/control/simulcontroller/periodic.go | 20 ++++++++++++++++--- loadtest/store/memstore/store.go | 8 ++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/loadtest/control/simulcontroller/controller.go b/loadtest/control/simulcontroller/controller.go index 75d880706..78a738503 100644 --- a/loadtest/control/simulcontroller/controller.go +++ b/loadtest/control/simulcontroller/controller.go @@ -207,11 +207,6 @@ func getActionList(c *SimulController) []userAction { run: c.generateUserReport, frequency: 0.0001, }, - { - name: "SubmitClientPerformanceReport", - run: submitPerformanceReport, - frequency: 0.0001, - }, } return actions diff --git a/loadtest/control/simulcontroller/periodic.go b/loadtest/control/simulcontroller/periodic.go index 12aea5c2e..956adab0d 100644 --- a/loadtest/control/simulcontroller/periodic.go +++ b/loadtest/control/simulcontroller/periodic.go @@ -10,19 +10,33 @@ import ( const ( getUsersStatusByIdsInterval = 60 * time.Second + submitClientMetircsInterval = 60 * time.Second ) func (c *SimulController) periodicActions(wg *sync.WaitGroup) { - defer wg.Done() + st := time.NewTicker(getUsersStatusByIdsInterval) + mt := time.NewTicker(submitClientMetircsInterval) + + defer func() { + mt.Stop() + st.Stop() + wg.Done() + }() + for { select { - case <-time.After(getUsersStatusByIdsInterval): + case <-st.C: if resp := c.getUsersStatuses(); resp.Err != nil { c.status <- c.newErrorStatus(resp.Err) } else { c.status <- c.newInfoStatus(resp.Info) } - // We can add more periodic actions here. + case <-mt.C: + if resp := submitPerformanceReport(c.user); resp.Err != nil { + c.status <- c.newErrorStatus(resp.Err) + } else { + c.status <- c.newInfoStatus(resp.Info) + } case <-c.disconnectChan: return } diff --git a/loadtest/store/memstore/store.go b/loadtest/store/memstore/store.go index fb44df8c3..ef44c4d7e 100644 --- a/loadtest/store/memstore/store.go +++ b/loadtest/store/memstore/store.go @@ -1189,15 +1189,15 @@ func (s *MemStore) PostsWithAckRequests() ([]string, error) { } func (s *MemStore) SetPerformanceReport(report *model.PerformanceReport) { - s.lock.RLock() - defer s.lock.RUnlock() + s.lock.Lock() + defer s.lock.Unlock() s.report = report } func (s *MemStore) PerformanceReport() (*model.PerformanceReport, error) { - s.lock.RLock() - defer s.lock.RUnlock() + s.lock.Lock() + defer s.lock.Unlock() if s.report == nil { return nil, nil }