diff options
author | 2024-06-03 21:55:50 +0000 | |
---|---|---|
committer | 2024-06-03 22:55:50 +0100 | |
commit | f17dd62ff5c82d68f76354c2074c1bddcd04ac79 (patch) | |
tree | c08f94c301452f80af15f9ce2085871e3ff83d0a /internal/workers/workers.go | |
parent | bump go-structr to v0.8.5 to improve memory usage (#2955) (diff) | |
download | gotosocial-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.go | 39 |
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 |