| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- package asynqsvc
 
- import (
 
- 	"context"
 
- 	"kpt-pasture/config"
 
- 	"gitee.com/xuyiping_admin/pkg/logger/zaplog"
 
- 	"gitee.com/xuyiping_admin/pkg/xerr"
 
- 	"github.com/hibiken/asynq"
 
- 	"go.uber.org/zap"
 
- )
 
- type Option = asynq.Option
 
- type Client interface {
 
- 	CtxEnqueue(ctx context.Context, task *asynq.Task, ops ...Option) (*asynq.TaskInfo, error)
 
- }
 
- func NewClient(cfg *config.AppConfig) Client {
 
- 	setting := NewAsynqSetting(&cfg.SideWorkSetting.AsynqSetting)
 
- 	client := asynq.NewClient(setting.Redis.RedisClientOpt())
 
- 	return &ClientEntry{client}
 
- }
 
- type ClientEntry struct {
 
- 	*asynq.Client
 
- }
 
- func (c *ClientEntry) CtxEnqueue(ctx context.Context, task *asynq.Task, ops ...Option) (*asynq.TaskInfo, error) {
 
- 	taskInfo, err := c.Client.Enqueue(task, ops...)
 
- 	if err != nil {
 
- 		zaplog.Error("asynq CtxEnqueue failed Error ", zap.Any("err", err))
 
- 		return taskInfo, xerr.WithStack(err)
 
- 	}
 
- 	return taskInfo, nil
 
- }
 
 
  |