add middleware and queue inspector

This commit is contained in:
Sinh 2022-11-18 17:04:42 +07:00
parent 21c2ce0592
commit cb6f1c515b
2 changed files with 12 additions and 2 deletions

View File

@ -17,8 +17,9 @@ type Config struct {
Concurrency int
Priority ConfigPriority
TaskTimeout time.Duration
RetryDelayFunc asynq.RetryDelayFunc
TaskTimeout time.Duration
RetryDelayFunc asynq.RetryDelayFunc
ServerMiddlewares []asynq.MiddlewareFunc
}
// ConfigRedis ...

View File

@ -12,6 +12,7 @@ type Instance struct {
Client *asynq.Client
Server *asynq.ServeMux
Scheduler *asynq.Scheduler
Inspector *asynq.Inspector
Config Config
}
@ -31,6 +32,7 @@ func NewInstance(cfg Config) Instance {
instance.Server = initServer(redisConn, cfg)
instance.Scheduler = initScheduler(redisConn)
instance.Client = initClient(redisConn)
instance.Inspector = initInspector(redisConn)
instance.Config = cfg
// Return instance
@ -73,6 +75,9 @@ func initServer(redisConn asynq.RedisClientOpt, cfg Config) *asynq.ServeMux {
// Init mux server
mux := asynq.NewServeMux()
if len(cfg.ServerMiddlewares) > 0 {
mux.Use(cfg.ServerMiddlewares...)
}
// Run server
go func() {
@ -113,6 +118,10 @@ func initClient(redisConn asynq.RedisClientOpt) *asynq.Client {
return client
}
func initInspector(redisConn asynq.RedisClientOpt) *asynq.Inspector {
return asynq.NewInspector(redisConn)
}
// GetInstance ...
func GetInstance() Instance {
return instance