feat: update producer

This commit is contained in:
2026-04-12 23:44:23 +08:00
parent 0afd1d7fc9
commit 237457c65c
2 changed files with 16 additions and 9 deletions

View File

@@ -28,7 +28,7 @@ type IProduce interface {
// Date : 10:19 2022/7/7 // Date : 10:19 2022/7/7
type IConsumer interface { type IConsumer interface {
// Consume 消费数据 // Consume 消费数据
Consume(ctx context.Context) ([]*ZRangeData, error) Consume(ctx context.Context) ([]*ProduceData, error)
// ConsumeWithHandler 消费数据并使用handler处理 // ConsumeWithHandler 消费数据并使用handler处理
ConsumeWithHandler(ctx context.Context, handler IHandler) error ConsumeWithHandler(ctx context.Context, handler IHandler) error
} }
@@ -40,5 +40,5 @@ type IConsumer interface {
// Date : 10:26 2022/7/7 // Date : 10:26 2022/7/7
type IHandler interface { type IHandler interface {
// Handle 处理消费到的数据 // Handle 处理消费到的数据
Handle(queData []*ZRangeData) error Handle(queData []*ProduceData) error
} }

View File

@@ -9,10 +9,10 @@ package delay
import ( import (
"context" "context"
"encoding/json"
"errors" "errors"
"time" "time"
"git.zhangdeman.cn/zhangdeman/serialize"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )
@@ -33,21 +33,28 @@ type redisConsumer struct {
cfg *ConsumerConfig cfg *ConsumerConfig
} }
func (r *redisConsumer) Consume(ctx context.Context) ([]*ZRangeData, error) { func (r *redisConsumer) Consume(ctx context.Context) ([]*ProduceData, error) {
if nil == ctx { if nil == ctx {
ctx = context.Background() ctx = context.Background()
} }
zRangeResult := r.redisInstance.ZRange(ctx, r.cfg.QueueName, 0, time.Now().UnixNano()/1e6) zRangeResult := r.redisInstance.ZRange(ctx, r.cfg.QueueName, 0, time.Now().UnixNano()/1e6)
if err := zRangeResult.Err(); nil != err { if err := zRangeResult.Err(); nil != err {
return make([]*ZRangeData, 0), err return make([]*ProduceData, 0), err
} }
// 格式化数据 // 格式化数据
var ( var (
result []*ZRangeData result []*ProduceData
) )
if err := json.Unmarshal([]byte(zRangeResult.String()), &result); nil != err { valueList := zRangeResult.Val()
return make([]*ZRangeData, 0), err if len(valueList) == 0 {
return result, nil
} }
for _, item := range valueList {
d := &ProduceData{}
serialize.JSON.UnmarshalWithNumberForStringIgnoreError(item, d)
result = append(result, d)
}
return result, nil return result, nil
} }
@@ -56,7 +63,7 @@ func (r *redisConsumer) ConsumeWithHandler(ctx context.Context, handler IHandler
return errors.New("handler instance is nil") return errors.New("handler instance is nil")
} }
var ( var (
msgList []*ZRangeData msgList []*ProduceData
err error err error
) )