init: 1.0.0

This commit is contained in:
Chang lue Tsen
2025-04-25 12:08:29 +09:00
commit 8addcc584b
1031 changed files with 76472 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
package queue
import (
"github.com/hibiken/asynq"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/logger"
"github.com/perfect-panel/ppanel-server/queue/handler"
)
type Service struct {
svc *svc.ServiceContext
server *asynq.Server
}
func NewService(svc *svc.ServiceContext) *Service {
return &Service{
svc: svc,
server: initService(svc),
}
}
func (m *Service) Start() {
logger.Infof("start consumer service")
mux := asynq.NewServeMux()
// register tasks
handler.RegisterHandlers(mux, m.svc)
if err := m.server.Run(mux); err != nil {
logger.Error("consumer service error", logger.LogField{
Key: "error",
Value: err.Error(),
})
}
}
func (m *Service) Stop() {
logger.Info("stop consumer service")
m.server.Stop()
}
func initService(svc *svc.ServiceContext) *asynq.Server {
return asynq.NewServer(
asynq.RedisClientOpt{Addr: svc.Config.Redis.Host, Password: svc.Config.Redis.Pass, DB: 5},
asynq.Config{
IsFailure: func(err error) bool {
logger.Error("consumer service error", logger.Field("error", err.Error()))
return true
},
Concurrency: 20,
},
)
}