From 4e958c4ac389bfac41cd1b426b332136104a806c Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Fri, 13 Dec 2024 11:11:27 +0100 Subject: [PATCH] fix: eventqueue statistic --- .idea/workspace.xml | 5 ++++- manager.go | 31 ++++++++++++------------------- nix/config/common-packages.nix | 1 + nix/scripts/go-task.nix | 13 ++++++++++++- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 40bb5c2..d525f19 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,6 +7,8 @@ <list default="true" id="9979eb22-471e-4f2f-b624-fd3edb5e8c6e" name="Changes" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/manager.go" beforeDir="false" afterPath="$PROJECT_DIR$/manager.go" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/nix/config/common-packages.nix" beforeDir="false" afterPath="$PROJECT_DIR$/nix/config/common-packages.nix" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/nix/scripts/go-task.nix" beforeDir="false" afterPath="$PROJECT_DIR$/nix/scripts/go-task.nix" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -258,7 +260,8 @@ <workItem from="1734022155342" duration="424000" /> <workItem from="1734024671338" duration="1103000" /> <workItem from="1734042130391" duration="922000" /> - <workItem from="1734047047039" duration="1146000" /> + <workItem from="1734047047039" duration="1799000" /> + <workItem from="1734049269205" duration="1892000" /> </task> <servers /> </component> diff --git a/manager.go b/manager.go index 4775dfa..b468843 100644 --- a/manager.go +++ b/manager.go @@ -535,7 +535,7 @@ func (m *Manager) Start() error { } } - m.jobEventCh = make(chan any, 1000) + m.jobEventCh = make(chan any, 100) m.eventBus.Subscribe(QueueJob, m.jobEventCh) m.eventBus.Subscribe(JobReady, m.jobEventCh) @@ -803,12 +803,7 @@ type ManagerStats struct { Subscriber SubscriberStat `json:"Subscriber"` } type SubscriberStat struct { - Count int `json:"Count"` - Added int `json:"Added"` - Ready int `json:"Ready"` - Queued int `json:"Queue"` - Finished int `json:"Finished"` - Done int `json:"Done"` + Count int `json:"Count"` } // Stats computes and returns the statistics of the job queue @@ -822,12 +817,15 @@ func (m *Manager) Stats() ManagerStats { processedJobsCount := len(m.queue.processedJobs) pendingDependenciesCount := len(m.queue.pendingDependencies) eventQueueLength := len(m.jobEventCh) - subscriberCount := len(m.eventBus.subscribers) - subscriberJobAdded := len(m.eventBus.subscribers[JobAdded]) - subscriberJobReady := len(m.eventBus.subscribers[JobReady]) - subscriberQueueJob := len(m.eventBus.subscribers[QueueJob]) - subscriberJobFinished := len(m.eventBus.subscribers[JobFinished]) - subscriberJobDone := len(m.eventBus.subscribers[JobDone]) + + subscriberCount := 0 + + for _, job := range m.eventBus.subscribers { + for _, ch := range job { + subscriberCount += len(ch) + } + + } return ManagerStats{ ReadyQueueLength: readyQueueLength, @@ -837,12 +835,7 @@ func (m *Manager) Stats() ManagerStats { PendingDependenciesCount: pendingDependenciesCount, EventQueueLength: eventQueueLength, Subscriber: SubscriberStat{ - Count: subscriberCount, - Added: subscriberJobAdded, - Ready: subscriberJobReady, - Queued: subscriberQueueJob, - Finished: subscriberJobFinished, - Done: subscriberJobDone, + Count: subscriberCount, }, } } diff --git a/nix/config/common-packages.nix b/nix/config/common-packages.nix index 572a06e..9709c27 100644 --- a/nix/config/common-packages.nix +++ b/nix/config/common-packages.nix @@ -22,6 +22,7 @@ in [ fd feh gcc12 + goconvey gdlv git gitty diff --git a/nix/scripts/go-task.nix b/nix/scripts/go-task.nix index a39d0bb..e4472e1 100644 --- a/nix/scripts/go-task.nix +++ b/nix/scripts/go-task.nix @@ -24,7 +24,8 @@ run-tests: desc: Execute all tests. aliases: - - a + - t + - tests env: TEST_BY_TASK: true USER_WORKING_DIR: "{{.USER_WORKING_DIR}}" @@ -112,6 +113,16 @@ env: USER_WORKING_DIR: "{{.USER_WORKING_DIR}}" + run-goconvey: + desc: Execute all tests and open the goconvey web interface. + aliases: + - goconvey + env: + TEST_BY_TASK: true + USER_WORKING_DIR: "{{.USER_WORKING_DIR}}" + cmds: + - ${pkgs'.goconvey}/bin/goconvey -port 7777 -workDir "{{.USER_WORKING_DIR}}" + silent: true ''; }; -- GitLab