mirror of https://github.com/jlelse/GoBlog
Remove queue trigger again, made tests fail, change schedule times
This commit is contained in:
parent
5f969f8ba8
commit
9035f9bf46
|
@ -18,7 +18,7 @@ RUN go build -ldflags '-w -s' -o GoBlog
|
||||||
|
|
||||||
FROM build as test
|
FROM build as test
|
||||||
|
|
||||||
RUN go test -cover ./...
|
RUN go test -timeout 15s -cover ./...
|
||||||
|
|
||||||
FROM alpine:3.15 as base
|
FROM alpine:3.15 as base
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ type apRequest struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *goBlog) initAPSendQueue() {
|
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
|
var r apRequest
|
||||||
if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&r); err != nil {
|
if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&r); err != nil {
|
||||||
log.Println("activitypub queue:", err.Error())
|
log.Println("activitypub queue:", err.Error())
|
||||||
|
|
2
app.go
2
app.go
|
@ -73,8 +73,6 @@ type goBlog struct {
|
||||||
regexRedirects []*regexRedirect
|
regexRedirects []*regexRedirect
|
||||||
// Sessions
|
// Sessions
|
||||||
loginSessions, captchaSessions *dbSessionStore
|
loginSessions, captchaSessions *dbSessionStore
|
||||||
// Queue triggers
|
|
||||||
queueTriggers []chan struct{}
|
|
||||||
// Shutdown
|
// Shutdown
|
||||||
shutdown shutdowner.Shutdowner
|
shutdown shutdowner.Shutdowner
|
||||||
// Template strings
|
// Template strings
|
||||||
|
|
|
@ -6,8 +6,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *goBlog) startPostsScheduler() {
|
func (a *goBlog) startPostsScheduler() {
|
||||||
ticker := time.NewTicker(10 * time.Second)
|
ticker := time.NewTicker(30 * time.Second)
|
||||||
done := make(chan bool)
|
done := make(chan struct{})
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
|
@ -20,7 +20,7 @@ func (a *goBlog) startPostsScheduler() {
|
||||||
}()
|
}()
|
||||||
a.shutdown.Add(func() {
|
a.shutdown.Add(func() {
|
||||||
ticker.Stop()
|
ticker.Stop()
|
||||||
done <- true
|
done <- struct{}{}
|
||||||
log.Println("Posts scheduler stopped")
|
log.Println("Posts scheduler stopped")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
10
queue.go
10
queue.go
|
@ -31,10 +31,6 @@ func (a *goBlog) enqueue(name string, content []byte, schedule time.Time) error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Trigger all queue listeners
|
|
||||||
for _, trigger := range a.queueTriggers {
|
|
||||||
trigger <- struct{}{}
|
|
||||||
}
|
|
||||||
return nil
|
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))
|
type queueProcessFunc func(qi *queueItem, dequeue func(), reschedule func(time.Duration))
|
||||||
|
|
||||||
func (a *goBlog) listenOnQueue(queueName string, wait time.Duration, process queueProcessFunc) {
|
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() {
|
go func() {
|
||||||
done := false
|
done := false
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
@ -109,8 +101,6 @@ func (a *goBlog) listenOnQueue(queueName string, wait time.Duration, process que
|
||||||
select {
|
select {
|
||||||
case <-time.After(wait):
|
case <-time.After(wait):
|
||||||
continue
|
continue
|
||||||
case <-trigger:
|
|
||||||
continue
|
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
done = true
|
done = true
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *goBlog) initWebmentionQueue() {
|
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
|
var m mention
|
||||||
if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&m); err != nil {
|
if err := gob.NewDecoder(bytes.NewReader(qi.content)).Decode(&m); err != nil {
|
||||||
log.Println("webmention queue:", err.Error())
|
log.Println("webmention queue:", err.Error())
|
||||||
|
|
Loading…
Reference in New Issue