47 lines
1.5 KiB
Go
47 lines
1.5 KiB
Go
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
|
|
}
|