我用来生成连接和读取消息的包是:“github.com/go-redis/redis”
当我从 golang 中的一个组中读取事件时,我试图声明不使用 NOACK,但是当一个新事件到达时,它会留下这个新事件,就好像它有 NOACK 一样。
entries, err := redisClient.XReadGroup(&redis.XReadGroupArgs{
Group: consumerGroup,
Consumer: uniqueID,
Streams: []string{streamSubject, ">"},
Count: 2,
Block: 0,
NoAck: false,
}).Result()
在这一部分中,我声明了我如何阅读消息并声明我不使用 ack。
之后,我从 redis-cli 发送一条消息
127.0.0.1:6379[1]> XADD charge * taco great
1627519110415
我从我的 Golang 脚本中得到
DEBU[0051] Handling new data: {charge [{1627519767943-0 map[taco:great]}]}
如果消息仍在处理中但似乎丢失,则有效。
127.0.0.1:6379[1]> XREADGROUP GROUP group-test bob STREAMS charge 0
1) 1) "charge"
2) (empty array)