| 1234567891011121314151617181920212223242526272829303132333435363738 | package asynqsvcimport (	"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.Optiontype 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}
 |