2
0
mirror of https://github.com/hibiken/asynq.git synced 2024-12-25 23:32:17 +08:00

Terminate background upon receiving SIGTERM or SIGINT

This commit is contained in:
Ken Hibino 2019-12-16 20:19:05 -08:00
parent 12fc336889
commit 911e600c41
2 changed files with 4 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import (
"os" "os"
"os/signal" "os/signal"
"sync" "sync"
"syscall"
"time" "time"
"github.com/hibiken/asynq/internal/rdb" "github.com/hibiken/asynq/internal/rdb"
@ -74,9 +75,9 @@ func (bg *Background) Run(handler Handler) {
bg.start(handler) bg.start(handler)
defer bg.stop() defer bg.stop()
// Wait for a signal to exit. // Wait for a signal to terminate.
sigs := make(chan os.Signal, 1) sigs := make(chan os.Signal, 1)
signal.Notify(sigs, os.Interrupt, os.Kill) signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT)
<-sigs <-sigs
fmt.Println() fmt.Println()
log.Println("[INFO] Starting graceful shutdown...") log.Println("[INFO] Starting graceful shutdown...")

View File

@ -144,7 +144,7 @@ func (r *RDB) Retry(msg *TaskMessage, processAt time.Time, errMsg string) error
if err != nil { if err != nil {
return fmt.Errorf("could not marshal %+v to json: %v", modified, err) return fmt.Errorf("could not marshal %+v to json: %v", modified, err)
} }
// KEYS[1] -> asynq:in_progress // KEYS[1] -> asynq:in_progress
// KEYS[2] -> asynq:retry // KEYS[2] -> asynq:retry
// ARGV[1] -> TaskMessage value to remove from InProgress queue // ARGV[1] -> TaskMessage value to remove from InProgress queue
// ARGV[2] -> TaskMessage value to add to Retry queue // ARGV[2] -> TaskMessage value to add to Retry queue