package thirdrepoimpl import ( "context" "github.com/go-kratos/kratos/v2/log" "voucher/internal/biz/thirdrepo" "voucher/internal/data" "voucher/internal/pkg/mq" ) type ThirdMQSendImpl struct { mq *data.RocketMQ } func NewMQSendImpl(mq *data.RocketMQ) thirdrepo.ThirdMQSend { return &ThirdMQSendImpl{ mq: mq, } } func (s *ThirdMQSendImpl) SendSync(ctx context.Context, topicName string, body []byte, sendOptions ...mq.SendOption) error { return s.mq.MqProducer.SendSync(ctx, topicName, body, sendOptions...) } func (s *ThirdMQSendImpl) SendASync(ctx context.Context, topicName string, body []byte, errFn func(error), sendOptions ...mq.SendOption) error { err := s.mq.MqProducer.SendAsync(ctx, topicName, body, func(err error) { if err == nil { return } log.Errorf("异步发送消息出错:topName=%s,body=%s,err=%s", topicName, body, err.Error()) errFn(err) }, sendOptions...) return err } func (s *ThirdMQSendImpl) SendAsyncNotFn(ctx context.Context, topic string, body []byte, sendOptions ...mq.SendOption) error { err := s.mq.MqProducer.SendAsync(ctx, topic, body, func(err error) { if err == nil { return } log.Errorf("异步发送消息出错:topName=%s,body=%s,err=%s", topic, body, err.Error()) }, sendOptions...) return err }