update retry config #2

Merged
luuvansinh merged 1 commits from update-retry-config into master 2022-08-10 10:18:17 +00:00
2 changed files with 16 additions and 8 deletions

View File

@ -1,6 +1,10 @@
package queue
import "time"
import (
"time"
"github.com/hibiken/asynq"
)
// Config ...
type Config struct {
@ -13,7 +17,8 @@ type Config struct {
Concurrency int
Priority ConfigPriority
TaskTimeout time.Duration
TaskTimeout time.Duration
RetryDelayFunc asynq.RetryDelayFunc
}
// ConfigRedis ...

View File

@ -50,6 +50,13 @@ func initServer(redisConn asynq.RedisClientOpt, cfg Config) *asynq.ServeMux {
cfg.Priority.Low = 1
cfg.Priority.StrictMode = false
}
retryDelayFunc := cfg.RetryDelayFunc
if retryDelayFunc == nil {
// Default delay in 10s
retryDelayFunc = func(n int, e error, t *asynq.Task) time.Duration {
return 10 * time.Second
}
}
// Init server
server := asynq.NewServer(redisConn, asynq.Config{
@ -61,11 +68,7 @@ func initServer(redisConn asynq.RedisClientOpt, cfg Config) *asynq.ServeMux {
},
StrictPriority: cfg.Priority.StrictMode,
// TODO:
// This is default option, retry after 10s, will add to config later
RetryDelayFunc: func(n int, e error, t *asynq.Task) time.Duration {
return 10 * time.Second
},
RetryDelayFunc: retryDelayFunc,
})
// Init mux server
@ -112,5 +115,5 @@ func initClient(redisConn asynq.RedisClientOpt) *asynq.Client {
// GetInstance ...
func GetInstance() Instance {
return instance
return instance
}