feat: update producer
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user