mirror of
https://github.com/hibiken/asynq.git
synced 2026-04-28 04:15:52 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c04fd41653 | ||
|
|
7e5efb0e30 | ||
|
|
cabf8d3627 |
@@ -7,7 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.21.0] - 2022-02-19
|
||||
## [0.22.1] - 2022-02-20
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed Redis version compatibility: Keep support for redis v4.0+
|
||||
|
||||
## [0.22.0] - 2022-02-19
|
||||
|
||||
### Added
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
)
|
||||
|
||||
// Version of asynq library and CLI.
|
||||
const Version = "0.22.0"
|
||||
const Version = "0.22.1"
|
||||
|
||||
// DefaultQueueName is the queue name used if none are specified by user.
|
||||
const DefaultQueueName = "default"
|
||||
|
||||
@@ -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.
|
||||
func (r *RDB) ExtendLease(qname string, ids ...string) (expirationTime time.Time, err error) {
|
||||
expireAt := r.clock.Now().Add(LeaseDuration)
|
||||
var zs []redis.Z
|
||||
var zs []*redis.Z
|
||||
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
|
||||
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 {
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user