From 4ad6ca00b486f4cf1d09a3021901475800df6b87 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Fri, 4 Sep 2026 16:39:32 +0800 Subject: [PATCH] Prevent Redis message seq regression --- server/store/group_message_runtime.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/store/group_message_runtime.go b/server/store/group_message_runtime.go index 2de865a..43a3799 100644 --- a/server/store/group_message_runtime.go +++ b/server/store/group_message_runtime.go @@ -410,7 +410,10 @@ func (r *redisGroupMessageRuntime) NextSeq(tenantID types.TenantID, topic string } seqKey := r.seqKey(tenantID, topic) seq, err := r.client.Eval(context.Background(), ` -if redis.call("EXISTS", KEYS[1]) == 0 then +local current = redis.call("GET", KEYS[1]) +if not current then + redis.call("SET", KEYS[1], ARGV[1]) +elseif tonumber(current) < tonumber(ARGV[1]) then redis.call("SET", KEYS[1], ARGV[1]) end return redis.call("INCR", KEYS[1])