mirror of
https://github.com/hibiken/asynq.git
synced 2024-12-27 00:02:19 +08:00
Drop GT option from RDB.ExtendLease
GT option in ZAdd is supported for redis v6.2.0 or above. This Change fixes redis version compatibility (currently v4.0+)
This commit is contained in:
parent
cabf8d3627
commit
7e5efb0e30
@ -936,12 +936,13 @@ func (r *RDB) ListLeaseExpired(cutoff time.Time, qnames ...string) ([]*base.Task
|
|||||||
// It returns a new expiration time if the operation was successful.
|
// It returns a new expiration time if the operation was successful.
|
||||||
func (r *RDB) ExtendLease(qname string, ids ...string) (expirationTime time.Time, err error) {
|
func (r *RDB) ExtendLease(qname string, ids ...string) (expirationTime time.Time, err error) {
|
||||||
expireAt := r.clock.Now().Add(LeaseDuration)
|
expireAt := r.clock.Now().Add(LeaseDuration)
|
||||||
var zs []redis.Z
|
var zs []*redis.Z
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
zs = append(zs, redis.Z{Member: id, Score: float64(expireAt.Unix())})
|
zs = append(zs, &redis.Z{Member: id, Score: float64(expireAt.Unix())})
|
||||||
}
|
}
|
||||||
// Use XX option to only update elements that already exist; Don't add new elements
|
// Use XX option to only update elements that already exist; Don't add new elements
|
||||||
err = r.client.ZAddArgs(context.Background(), base.LeaseKey(qname), redis.ZAddArgs{XX: true, GT: true, Members: zs}).Err()
|
// TODO: Consider adding GT option to ensure we only "extend" the lease. Ceveat is that GT is supported from redis v6.2.0 or above.
|
||||||
|
err = r.client.ZAddXX(context.Background(), base.LeaseKey(qname), zs...).Err()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return time.Time{}, err
|
return time.Time{}, err
|
||||||
}
|
}
|
||||||
|
@ -2353,22 +2353,6 @@ func TestExtendLease(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
desc: "Should not add shorten the lease expiration time",
|
|
||||||
lease: map[string][]base.Z{
|
|
||||||
"default": {
|
|
||||||
{Message: t1, Score: now.Add(LeaseDuration).Add(10 * time.Second).Unix()},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
qname: "default",
|
|
||||||
ids: []string{t1.ID},
|
|
||||||
wantExpirationTime: now.Add(LeaseDuration),
|
|
||||||
wantLease: map[string][]base.Z{
|
|
||||||
"default": {
|
|
||||||
{Message: t1, Score: now.Add(LeaseDuration).Add(10 * time.Second).Unix()},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user