summaryrefslogtreecommitdiff
path: root/internal/workers/workers.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-06-03 21:55:50 +0000
committerLibravatar GitHub <noreply@github.com>2024-06-03 22:55:50 +0100
commitf17dd62ff5c82d68f76354c2074c1bddcd04ac79 (patch)
treec08f94c301452f80af15f9ce2085871e3ff83d0a /internal/workers/workers.go
parentbump go-structr to v0.8.5 to improve memory usage (#2955) (diff)
downloadgotosocial-f17dd62ff5c82d68f76354c2074c1bddcd04ac79.tar.xz
[feature] log worker startup counts (#2958)
* log number of each worker kinds started, and log when stopped * remove worker debug logging * whoops, fix the count of media workers
Diffstat (limited to 'internal/workers/workers.go')
-rw-r--r--internal/workers/workers.go39
1 files changed, 34 insertions, 5 deletions
diff --git a/internal/workers/workers.go b/internal/workers/workers.go
index 3f4156841..306d9e635 100644
--- a/internal/workers/workers.go
+++ b/internal/workers/workers.go
@@ -21,6 +21,7 @@ import (
"runtime"
"github.com/superseriousbusiness/gotosocial/internal/config"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/messages"
"github.com/superseriousbusiness/gotosocial/internal/scheduler"
"github.com/superseriousbusiness/gotosocial/internal/transport/delivery"
@@ -59,26 +60,54 @@ type Workers struct {
// StartScheduler starts the job scheduler.
func (w *Workers) StartScheduler() {
_ = w.Scheduler.Start() // false = already running
+ log.Info(nil, "started scheduler")
}
// Start will start contained worker pools.
func (w *Workers) Start() {
+ var n int
+
maxprocs := runtime.GOMAXPROCS(0)
- w.Delivery.Start(deliveryWorkers(maxprocs))
- w.Client.Start(4 * maxprocs)
- w.Federator.Start(4 * maxprocs)
- w.Dereference.Start(4 * maxprocs)
- w.Media.Start(8 * maxprocs)
+
+ n = deliveryWorkers(maxprocs)
+ w.Delivery.Start(n)
+ log.Infof(nil, "started %d delivery workers", n)
+
+ n = 4 * maxprocs
+ w.Client.Start(n)
+ log.Infof(nil, "started %d client workers", n)
+
+ n = 4 * maxprocs
+ w.Federator.Start(n)
+ log.Infof(nil, "started %d federator workers", n)
+
+ n = 4 * maxprocs
+ w.Dereference.Start(n)
+ log.Infof(nil, "started %d dereference workers", n)
+
+ n = 8 * maxprocs
+ w.Media.Start(n)
+ log.Infof(nil, "started %d media workers", n)
}
// Stop will stop all of the contained worker pools (and global scheduler).
func (w *Workers) Stop() {
_ = w.Scheduler.Stop() // false = not running
+
w.Delivery.Stop()
+ log.Info(nil, "stopped delivery workers")
+
w.Client.Stop()
+ log.Info(nil, "stopped client workers")
+
w.Federator.Stop()
+ log.Info(nil, "stopped federator workers")
+
w.Dereference.Stop()
+ log.Info(nil, "stopped dereference workers")
+
w.Media.Stop()
+ log.Info(nil, "stopped media workers")
}
// nocopy when embedded will signal linter to