package main import ( "flag" "fmt" "github.com/hibiken/asynq" "github.com/zero-ppanel/zero-ppanel/apps/queue/internal/config" "github.com/zero-ppanel/zero-ppanel/apps/queue/internal/handler" "github.com/zero-ppanel/zero-ppanel/apps/queue/internal/svc" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/trace" ) var configFile = flag.String("f", "etc/queue-dev.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) logx.MustSetup(c.Log) if c.Telemetry.Name != "" { trace.StartAgent(c.Telemetry) } svcCtx := svc.NewServiceContext(c) server := asynq.NewServer( asynq.RedisClientOpt{Addr: c.Asynq.Addr, Password: c.Asynq.Pass}, asynq.Config{ Concurrency: 20, IsFailure: func(err error) bool { logx.Errorf("asynq task error: %v", err) return true }, }, ) mux := asynq.NewServeMux() handler.RegisterHandlers(mux, svcCtx) fmt.Println("Starting zero-ppanel-queue worker...") if err := server.Run(mux); err != nil { logx.Must(err) } }