snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
36
internal/redisqueue/xautoclaim.go
Normal file
36
internal/redisqueue/xautoclaim.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package redisqueue
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/redis/rueidis"
|
||||
)
|
||||
|
||||
type XAutoClaimCmd struct {
|
||||
err error
|
||||
start string
|
||||
val []rueidis.XRangeEntry
|
||||
}
|
||||
|
||||
func NewXAutoClaimCmd(res rueidis.RedisResult) *XAutoClaimCmd {
|
||||
arr, err := res.ToArray()
|
||||
if err != nil {
|
||||
return &XAutoClaimCmd{err: err}
|
||||
}
|
||||
if len(arr) < 2 {
|
||||
return &XAutoClaimCmd{err: fmt.Errorf("got %d, wanted 2", len(arr))}
|
||||
}
|
||||
start, err := arr[0].ToString()
|
||||
if err != nil {
|
||||
return &XAutoClaimCmd{err: err}
|
||||
}
|
||||
ranges, err := arr[1].AsXRange()
|
||||
if err != nil {
|
||||
return &XAutoClaimCmd{err: err}
|
||||
}
|
||||
return &XAutoClaimCmd{val: ranges, start: start, err: err}
|
||||
}
|
||||
|
||||
func (cmd *XAutoClaimCmd) Result() (messages []rueidis.XRangeEntry, start string, err error) {
|
||||
return cmd.val, cmd.start, cmd.err
|
||||
}
|
||||
Reference in New Issue
Block a user