diff options
| author | 2023-03-01 18:26:53 +0000 | |
|---|---|---|
| committer | 2023-03-01 18:26:53 +0000 | |
| commit | baf933cb9f3e1053bdb61b90d7027efe9fad1bc2 (patch) | |
| tree | 3f2a76851d58517ca3dece2bacd6aceefd8dfb96 /internal/workers | |
| parent | [feature] Federate pinned posts (aka `featuredCollection`) in and out (#1560) (diff) | |
| download | gotosocial-baf933cb9f3e1053bdb61b90d7027efe9fad1bc2.tar.xz | |
[chore] move client/federator workerpools to Workers{} (#1575)
* replace concurrency worker pools with base models in State.Workers, update code and tests accordingly
* improve code comment
* change back testrig default log level
* un-comment-out TestAnnounceTwice() and fix
---------
Signed-off-by: kim <grufwub@gmail.com>
Reviewed-by: tobi
Diffstat (limited to 'internal/workers')
| -rw-r--r-- | internal/workers/workers.go | 30 | 
1 files changed, 19 insertions, 11 deletions
| diff --git a/internal/workers/workers.go b/internal/workers/workers.go index 77b3065ce..b29d115aa 100644 --- a/internal/workers/workers.go +++ b/internal/workers/workers.go @@ -19,20 +19,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  package workers  import ( +	"context"  	"log"  	"runtime"  	"codeberg.org/gruf/go-runners"  	"codeberg.org/gruf/go-sched" +	"github.com/superseriousbusiness/gotosocial/internal/messages"  )  type Workers struct {  	// Main task scheduler instance.  	Scheduler sched.Scheduler -	// Processor / federator worker pools. -	// ClientAPI runners.WorkerPool -	// Federator runners.WorkerPool +	// ClientAPI / federator worker pools. +	ClientAPI runners.WorkerPool +	Federator runners.WorkerPool + +	// Enqueue functions for clientAPI / federator worker pools, +	// these are pointers to Processor{}.Enqueue___() msg functions. +	// This prevents dependency cycling as Processor depends on Workers. +	EnqueueClientAPI func(context.Context, messages.FromClientAPI) +	EnqueueFederator func(context.Context, messages.FromFederator)  	// Media manager worker pools.  	Media runners.WorkerPool @@ -50,13 +58,13 @@ func (w *Workers) Start() {  		return w.Scheduler.Start(nil)  	}) -	// tryUntil("starting client API workerpool", 5, func() bool { -	// 	return w.ClientAPI.Start(4*maxprocs, 400*maxprocs) -	// }) +	tryUntil("starting client API workerpool", 5, func() bool { +		return w.ClientAPI.Start(4*maxprocs, 400*maxprocs) +	}) -	// tryUntil("starting federator workerpool", 5, func() bool { -	// 	return w.Federator.Start(4*maxprocs, 400*maxprocs) -	// }) +	tryUntil("starting federator workerpool", 5, func() bool { +		return w.Federator.Start(4*maxprocs, 400*maxprocs) +	})  	tryUntil("starting media workerpool", 5, func() bool {  		return w.Media.Start(8*maxprocs, 80*maxprocs) @@ -66,8 +74,8 @@ func (w *Workers) Start() {  // Stop will stop all of the contained worker pools (and global scheduler).  func (w *Workers) Stop() {  	tryUntil("stopping scheduler", 5, w.Scheduler.Stop) -	// tryUntil("stopping client API workerpool", 5, w.ClientAPI.Stop) -	// tryUntil("stopping federator workerpool", 5, w.Federator.Stop) +	tryUntil("stopping client API workerpool", 5, w.ClientAPI.Stop) +	tryUntil("stopping federator workerpool", 5, w.Federator.Stop)  	tryUntil("stopping media workerpool", 5, w.Media.Stop)  } | 
