package rabbitmq import ( "context" "github.com/gogf/gf/v2/frame/g" "git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/consts" mq "git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/library/rabbitmq" "git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/model" ) func (c *Consumers) initDataReviewQuery(ctx context.Context) error { if c.dataReview == nil { return nil } if !mq.Enabled(ctx) { g.Log().Info(ctx, "data review query consumer skipped, RabbitMQ disabled") return nil } if err := mq.ConsumeJSON[model.DataReviewQueryMessage]( ctx, consts.QueueDataReviewQuery, "iotlcm-data-review-query", c.handleDataReviewQuery, ); err != nil { return err } g.Log().Infof(ctx, "data review query consumer started, queue:%s", consts.QueueDataReviewQuery) return nil } func (c *Consumers) handleDataReviewQuery(ctx context.Context, message model.DataReviewQueryMessage) error { if c.dataReview == nil || message.BatchNo == "" { g.Log().Errorf(ctx, "data review query message dropped, invalid message:%+v", message) return nil } queried, err := c.dataReview.QueryReviewBatch(ctx, message.BatchNo) if err != nil { // 手动同步失败只记日志,不重投:重投也不会改变上游结果,且可能放大查询压力。 g.Log().Errorf(ctx, "手动同步APN上游结果失败 batchNo=%s 已同步=%d error=%v", message.BatchNo, queried, err) return nil } g.Log().Infof(ctx, "手动同步APN上游结果完成 batchNo=%s 已同步=%d", message.BatchNo, queried) return nil }