From 9035f9bf463d6e03c44dc851dbeb6ac62dfce111 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Thu, 31 Mar 2022 15:51:17 +0200 Subject: [PATCH] Remove queue trigger again, made tests fail, change schedule times --- Dockerfile | 2 +- activityPubSending.go | 2 +- app.go | 2 -- postsScheduler.go | 6 +++--- queue.go | 10 ---------- webmentionVerification.go | 2 +- 6 files changed, 6 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 23c26d4..381fbe5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN go build -ldflags '-w -s' -o GoBlog FROM build as test -RUN go test -cover ./... +RUN go test -timeout 15s -cover ./... FROM alpine:3.15 as base diff --git a/activityPubSending.go b/activityPubSending.go index a62cf65..8d7fd71 100644 --- a/activityPubSending.go +++ b/activityPubSending.go @@ -23,7 +23,7 @@ type apRequest struct { } func (a *goBlog) initAPSendQueue() { - a.listenOnQueue("ap", time.Minute, func(qi *queueItem, dequeue func(), reschedule func(time.Duration)) { + a.listenOnQueue("ap", 30*time.Second, func(qi *queueItem, dequeue func(), reschedule func(time.Duration)) { var r apRequest if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&r); err != nil { log.Println("activitypub queue:", err.Error()) diff --git a/app.go b/app.go index dba0b6b..6d71c5d 100644 --- a/app.go +++ b/app.go @@ -73,8 +73,6 @@ type goBlog struct { regexRedirects []*regexRedirect // Sessions loginSessions, captchaSessions *dbSessionStore - // Queue triggers - queueTriggers []chan struct{} // Shutdown shutdown shutdowner.Shutdowner // Template strings diff --git a/postsScheduler.go b/postsScheduler.go index d2e4ff5..86efb71 100644 --- a/postsScheduler.go +++ b/postsScheduler.go @@ -6,8 +6,8 @@ import ( ) func (a *goBlog) startPostsScheduler() { - ticker := time.NewTicker(10 * time.Second) - done := make(chan bool) + ticker := time.NewTicker(30 * time.Second) + done := make(chan struct{}) go func() { for { select { @@ -20,7 +20,7 @@ func (a *goBlog) startPostsScheduler() { }() a.shutdown.Add(func() { ticker.Stop() - done <- true + done <- struct{}{} log.Println("Posts scheduler stopped") }) } diff --git a/queue.go b/queue.go index 6caae12..f9c5be2 100644 --- a/queue.go +++ b/queue.go @@ -31,10 +31,6 @@ func (a *goBlog) enqueue(name string, content []byte, schedule time.Time) error if err != nil { return err } - // Trigger all queue listeners - for _, trigger := range a.queueTriggers { - trigger <- struct{}{} - } return nil } @@ -82,10 +78,6 @@ func (a *goBlog) peekQueue(ctx context.Context, name string) (*queueItem, error) type queueProcessFunc func(qi *queueItem, dequeue func(), reschedule func(time.Duration)) func (a *goBlog) listenOnQueue(queueName string, wait time.Duration, process queueProcessFunc) { - // Queue trigger - trigger := make(chan struct{}) - a.queueTriggers = append(a.queueTriggers, trigger) - // Start goroutine to listen on queue go func() { done := false var wg sync.WaitGroup @@ -109,8 +101,6 @@ func (a *goBlog) listenOnQueue(queueName string, wait time.Duration, process que select { case <-time.After(wait): continue - case <-trigger: - continue case <-ctx.Done(): done = true continue diff --git a/webmentionVerification.go b/webmentionVerification.go index 01a2c68..d0afb18 100644 --- a/webmentionVerification.go +++ b/webmentionVerification.go @@ -21,7 +21,7 @@ import ( ) func (a *goBlog) initWebmentionQueue() { - a.listenOnQueue("wm", time.Minute, func(qi *queueItem, dequeue func(), reschedule func(time.Duration)) { + a.listenOnQueue("wm", 30*time.Second, func(qi *queueItem, dequeue func(), reschedule func(time.Duration)) { var m mention if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&m); err != nil { log.Println("webmention queue:", err.Error())