mirror of
https://github.com/hibiken/asynq.git
synced 2024-12-24 23:02:18 +08:00
Fix flaky tests
Some tests were failing due to mismatch in Score in ZSetEntry. Changed ZSetEntry Score to float64 type so that we can use cmpopts.EquateApprox to allow for margin when comparing.
This commit is contained in:
parent
2631672575
commit
97316d6766
@ -58,7 +58,7 @@ func TestClient(t *testing.T) {
|
||||
Retry: defaultMaxRetry,
|
||||
Queue: "default",
|
||||
},
|
||||
Score: time.Now().Add(2 * time.Hour).Unix(),
|
||||
Score: float64(time.Now().Add(2 * time.Hour).Unix()),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -20,7 +20,7 @@ import (
|
||||
// ZSetEntry is an entry in redis sorted set.
|
||||
type ZSetEntry struct {
|
||||
Msg *base.TaskMessage
|
||||
Score int64
|
||||
Score float64
|
||||
}
|
||||
|
||||
// SortMsgOpt is a cmp.Option to sort base.TaskMessage for comparing slice of task messages.
|
||||
@ -245,7 +245,7 @@ func getZSetEntries(tb testing.TB, r *redis.Client, zset string) []ZSetEntry {
|
||||
for _, z := range data {
|
||||
entries = append(entries, ZSetEntry{
|
||||
Msg: MustUnmarshal(tb, z.Member.(string)),
|
||||
Score: int64(z.Score),
|
||||
Score: z.Score,
|
||||
})
|
||||
}
|
||||
return entries
|
||||
|
@ -47,8 +47,8 @@ func TestCurrentStats(t *testing.T) {
|
||||
},
|
||||
inProgress: []*base.TaskMessage{m2},
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m3, Score: now.Add(time.Hour).Unix()},
|
||||
{Msg: m4, Score: now.Unix()}},
|
||||
{Msg: m3, Score: float64(now.Add(time.Hour).Unix())},
|
||||
{Msg: m4, Score: float64(now.Unix())}},
|
||||
retry: []h.ZSetEntry{},
|
||||
dead: []h.ZSetEntry{},
|
||||
processed: 120,
|
||||
@ -72,12 +72,12 @@ func TestCurrentStats(t *testing.T) {
|
||||
},
|
||||
inProgress: []*base.TaskMessage{},
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m3, Score: now.Unix()},
|
||||
{Msg: m4, Score: now.Unix()}},
|
||||
{Msg: m3, Score: float64(now.Unix())},
|
||||
{Msg: m4, Score: float64(now.Unix())}},
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: now.Add(time.Minute).Unix()}},
|
||||
{Msg: m1, Score: float64(now.Add(time.Minute).Unix())}},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: now.Add(-time.Hour).Unix()}},
|
||||
{Msg: m2, Score: float64(now.Add(-time.Hour).Unix())}},
|
||||
processed: 90,
|
||||
failed: 10,
|
||||
allQueues: []interface{}{base.DefaultQueue},
|
||||
@ -364,8 +364,8 @@ func TestListScheduled(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: p1.Unix()},
|
||||
{Msg: m2, Score: p2.Unix()},
|
||||
{Msg: m1, Score: float64(p1.Unix())},
|
||||
{Msg: m2, Score: float64(p2.Unix())},
|
||||
},
|
||||
want: []*ScheduledTask{t1, t2},
|
||||
},
|
||||
@ -449,8 +449,8 @@ func TestListRetry(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: p1.Unix()},
|
||||
{Msg: m2, Score: p2.Unix()},
|
||||
{Msg: m1, Score: float64(p1.Unix())},
|
||||
{Msg: m2, Score: float64(p2.Unix())},
|
||||
},
|
||||
want: []*RetryTask{t1, t2},
|
||||
},
|
||||
@ -527,8 +527,8 @@ func TestListDead(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: f1.Unix()},
|
||||
{Msg: m2, Score: f2.Unix()},
|
||||
{Msg: m1, Score: float64(f1.Unix())},
|
||||
{Msg: m2, Score: float64(f2.Unix())},
|
||||
},
|
||||
want: []*DeadTask{t1, t2},
|
||||
},
|
||||
@ -582,8 +582,8 @@ func TestEnqueueDeadTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: s2,
|
||||
id: t2.ID,
|
||||
@ -595,8 +595,8 @@ func TestEnqueueDeadTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: 123,
|
||||
id: t2.ID,
|
||||
@ -608,9 +608,9 @@ func TestEnqueueDeadTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t3, Score: s1},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
{Msg: t3, Score: float64(s1)},
|
||||
},
|
||||
score: s1,
|
||||
id: t3.ID,
|
||||
@ -666,8 +666,8 @@ func TestEnqueueRetryTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: s2,
|
||||
id: t2.ID,
|
||||
@ -679,8 +679,8 @@ func TestEnqueueRetryTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: 123,
|
||||
id: t2.ID,
|
||||
@ -692,9 +692,9 @@ func TestEnqueueRetryTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t3, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
{Msg: t3, Score: float64(s2)},
|
||||
},
|
||||
score: s2,
|
||||
id: t3.ID,
|
||||
@ -750,8 +750,8 @@ func TestEnqueueScheduledTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: s2,
|
||||
id: t2.ID,
|
||||
@ -763,8 +763,8 @@ func TestEnqueueScheduledTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
},
|
||||
score: 123,
|
||||
id: t2.ID,
|
||||
@ -776,9 +776,9 @@ func TestEnqueueScheduledTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: s1},
|
||||
{Msg: t2, Score: s2},
|
||||
{Msg: t3, Score: s1},
|
||||
{Msg: t1, Score: float64(s1)},
|
||||
{Msg: t2, Score: float64(s2)},
|
||||
{Msg: t3, Score: float64(s1)},
|
||||
},
|
||||
score: s1,
|
||||
id: t3.ID,
|
||||
@ -834,9 +834,9 @@ func TestEnqueueAllScheduledTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with tasks in scheduled queue",
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
},
|
||||
want: 3,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -854,11 +854,11 @@ func TestEnqueueAllScheduledTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with custom queues",
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t4, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t5, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t4, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t5, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
},
|
||||
want: 5,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -913,9 +913,9 @@ func TestEnqueueAllRetryTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with tasks in retry queue",
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
},
|
||||
want: 3,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -933,11 +933,11 @@ func TestEnqueueAllRetryTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with custom queues",
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t4, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t5, Score: time.Now().Add(time.Hour).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t4, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
{Msg: t5, Score: float64(time.Now().Add(time.Hour).Unix())},
|
||||
},
|
||||
want: 5,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -992,9 +992,9 @@ func TestEnqueueAllDeadTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with tasks in dead queue",
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
},
|
||||
want: 3,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -1012,11 +1012,11 @@ func TestEnqueueAllDeadTasks(t *testing.T) {
|
||||
{
|
||||
desc: "with custom queues",
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: t1, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t2, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t3, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t4, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t5, Score: time.Now().Add(-time.Minute).Unix()},
|
||||
{Msg: t1, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t2, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t3, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t4, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
{Msg: t5, Score: float64(time.Now().Add(-time.Minute).Unix())},
|
||||
},
|
||||
want: 5,
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
@ -1070,35 +1070,35 @@ func TestKillRetryTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{},
|
||||
id: m1.ID,
|
||||
score: t1.Unix(),
|
||||
want: nil,
|
||||
wantRetry: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m2.ID,
|
||||
score: t2.Unix(),
|
||||
want: ErrTaskNotFound,
|
||||
wantRetry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1147,35 +1147,35 @@ func TestKillScheduledTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{},
|
||||
id: m1.ID,
|
||||
score: t1.Unix(),
|
||||
want: nil,
|
||||
wantScheduled: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m2.ID,
|
||||
score: t2.Unix(),
|
||||
want: ErrTaskNotFound,
|
||||
wantScheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1222,42 +1222,42 @@ func TestKillAllRetryTasks(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{},
|
||||
want: 2,
|
||||
wantRetry: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
want: 1,
|
||||
wantRetry: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
want: 0,
|
||||
wantRetry: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1304,42 +1304,42 @@ func TestKillAllScheduledTasks(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{},
|
||||
want: 2,
|
||||
wantScheduled: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
want: 1,
|
||||
wantScheduled: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{},
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
want: 0,
|
||||
wantScheduled: []h.ZSetEntry{},
|
||||
wantDead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1386,8 +1386,8 @@ func TestDeleteDeadTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m1.ID,
|
||||
score: t1.Unix(),
|
||||
@ -1396,8 +1396,8 @@ func TestDeleteDeadTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m1.ID,
|
||||
score: t2.Unix(), // id and score mismatch
|
||||
@ -1446,8 +1446,8 @@ func TestDeleteRetryTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m1.ID,
|
||||
score: t1.Unix(),
|
||||
@ -1456,7 +1456,7 @@ func TestDeleteRetryTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
id: m2.ID,
|
||||
score: t2.Unix(),
|
||||
@ -1498,8 +1498,8 @@ func TestDeleteScheduledTask(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m2, Score: t2.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
{Msg: m2, Score: float64(t2.Unix())},
|
||||
},
|
||||
id: m1.ID,
|
||||
score: t1.Unix(),
|
||||
@ -1508,7 +1508,7 @@ func TestDeleteScheduledTask(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: t1.Unix()},
|
||||
{Msg: m1, Score: float64(t1.Unix())},
|
||||
},
|
||||
id: m2.ID,
|
||||
score: t2.Unix(),
|
||||
@ -1546,9 +1546,9 @@ func TestDeleteAllDeadTasks(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
dead: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: time.Now().Unix()},
|
||||
{Msg: m3, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(time.Now().Unix())},
|
||||
{Msg: m3, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
wantDead: []*base.TaskMessage{},
|
||||
},
|
||||
@ -1582,9 +1582,9 @@ func TestDeleteAllRetryTasks(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Unix()},
|
||||
{Msg: m2, Score: time.Now().Unix()},
|
||||
{Msg: m3, Score: time.Now().Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Unix())},
|
||||
{Msg: m2, Score: float64(time.Now().Unix())},
|
||||
{Msg: m3, Score: float64(time.Now().Unix())},
|
||||
},
|
||||
wantRetry: []*base.TaskMessage{},
|
||||
},
|
||||
@ -1618,9 +1618,9 @@ func TestDeleteAllScheduledTasks(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: m1, Score: time.Now().Add(time.Minute).Unix()},
|
||||
{Msg: m2, Score: time.Now().Add(time.Minute).Unix()},
|
||||
{Msg: m3, Score: time.Now().Add(time.Minute).Unix()},
|
||||
{Msg: m1, Score: float64(time.Now().Add(time.Minute).Unix())},
|
||||
{Msg: m2, Score: float64(time.Now().Add(time.Minute).Unix())},
|
||||
{Msg: m3, Score: float64(time.Now().Add(time.Minute).Unix())},
|
||||
},
|
||||
wantScheduled: []*base.TaskMessage{},
|
||||
},
|
||||
|
@ -308,8 +308,8 @@ func TestSchedule(t *testing.T) {
|
||||
t.Errorf("%s inserted %d items to %q, want 1 items inserted", desc, len(gotScheduled), base.ScheduledQueue)
|
||||
continue
|
||||
}
|
||||
if gotScheduled[0].Score != tc.processAt.Unix() {
|
||||
t.Errorf("%s inserted an item with score %d, want %d", desc, gotScheduled[0].Score, tc.processAt.Unix())
|
||||
if int64(gotScheduled[0].Score) != tc.processAt.Unix() {
|
||||
t.Errorf("%s inserted an item with score %d, want %d", desc, int64(gotScheduled[0].Score), tc.processAt.Unix())
|
||||
continue
|
||||
}
|
||||
}
|
||||
@ -347,7 +347,7 @@ func TestRetry(t *testing.T) {
|
||||
retry: []h.ZSetEntry{
|
||||
{
|
||||
Msg: t3,
|
||||
Score: now.Add(time.Minute).Unix(),
|
||||
Score: float64(now.Add(time.Minute).Unix()),
|
||||
},
|
||||
},
|
||||
msg: t1,
|
||||
@ -357,11 +357,11 @@ func TestRetry(t *testing.T) {
|
||||
wantRetry: []h.ZSetEntry{
|
||||
{
|
||||
Msg: t1AfterRetry,
|
||||
Score: now.Add(5 * time.Minute).Unix(),
|
||||
Score: float64(now.Add(5 * time.Minute).Unix()),
|
||||
},
|
||||
{
|
||||
Msg: t3,
|
||||
Score: now.Add(time.Minute).Unix(),
|
||||
Score: float64(now.Add(time.Minute).Unix()),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -440,7 +440,7 @@ func TestKill(t *testing.T) {
|
||||
dead: []h.ZSetEntry{
|
||||
{
|
||||
Msg: t3,
|
||||
Score: now.Add(-time.Hour).Unix(),
|
||||
Score: float64(now.Add(-time.Hour).Unix()),
|
||||
},
|
||||
},
|
||||
target: t1,
|
||||
@ -448,11 +448,11 @@ func TestKill(t *testing.T) {
|
||||
wantDead: []h.ZSetEntry{
|
||||
{
|
||||
Msg: t1AfterKill,
|
||||
Score: now.Unix(),
|
||||
Score: float64(now.Unix()),
|
||||
},
|
||||
{
|
||||
Msg: t3,
|
||||
Score: now.Add(-time.Hour).Unix(),
|
||||
Score: float64(now.Add(-time.Hour).Unix()),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -464,7 +464,7 @@ func TestKill(t *testing.T) {
|
||||
wantDead: []h.ZSetEntry{
|
||||
{
|
||||
Msg: t1AfterKill,
|
||||
Score: now.Unix(),
|
||||
Score: float64(now.Unix()),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -593,11 +593,11 @@ func TestCheckAndEnqueue(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: secondAgo.Unix()},
|
||||
{Msg: t2, Score: secondAgo.Unix()},
|
||||
{Msg: t1, Score: float64(secondAgo.Unix())},
|
||||
{Msg: t2, Score: float64(secondAgo.Unix())},
|
||||
},
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t3, Score: secondAgo.Unix()}},
|
||||
{Msg: t3, Score: float64(secondAgo.Unix())}},
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
"default": {t1, t2, t3},
|
||||
},
|
||||
@ -606,10 +606,10 @@ func TestCheckAndEnqueue(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: hourFromNow.Unix()},
|
||||
{Msg: t2, Score: secondAgo.Unix()}},
|
||||
{Msg: t1, Score: float64(hourFromNow.Unix())},
|
||||
{Msg: t2, Score: float64(secondAgo.Unix())}},
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t3, Score: secondAgo.Unix()}},
|
||||
{Msg: t3, Score: float64(secondAgo.Unix())}},
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
"default": {t2, t3},
|
||||
},
|
||||
@ -618,10 +618,10 @@ func TestCheckAndEnqueue(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: hourFromNow.Unix()},
|
||||
{Msg: t2, Score: hourFromNow.Unix()}},
|
||||
{Msg: t1, Score: float64(hourFromNow.Unix())},
|
||||
{Msg: t2, Score: float64(hourFromNow.Unix())}},
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t3, Score: hourFromNow.Unix()}},
|
||||
{Msg: t3, Score: float64(hourFromNow.Unix())}},
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
"default": {},
|
||||
},
|
||||
@ -630,11 +630,11 @@ func TestCheckAndEnqueue(t *testing.T) {
|
||||
},
|
||||
{
|
||||
scheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: secondAgo.Unix()},
|
||||
{Msg: t4, Score: secondAgo.Unix()},
|
||||
{Msg: t1, Score: float64(secondAgo.Unix())},
|
||||
{Msg: t4, Score: float64(secondAgo.Unix())},
|
||||
},
|
||||
retry: []h.ZSetEntry{
|
||||
{Msg: t5, Score: secondAgo.Unix()}},
|
||||
{Msg: t5, Score: float64(secondAgo.Unix())}},
|
||||
wantEnqueued: map[string][]*base.TaskMessage{
|
||||
"default": {t1},
|
||||
"critical": {t4},
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/google/go-cmp/cmp/cmpopts"
|
||||
h "github.com/hibiken/asynq/internal/asynqtest"
|
||||
"github.com/hibiken/asynq/internal/base"
|
||||
"github.com/hibiken/asynq/internal/rdb"
|
||||
@ -128,9 +129,9 @@ func TestProcessorRetry(t *testing.T) {
|
||||
delay: time.Minute,
|
||||
wait: time.Second,
|
||||
wantRetry: []h.ZSetEntry{
|
||||
{Msg: &r2, Score: now.Add(time.Minute).Unix()},
|
||||
{Msg: &r3, Score: now.Add(time.Minute).Unix()},
|
||||
{Msg: &r4, Score: now.Add(time.Minute).Unix()},
|
||||
{Msg: &r2, Score: float64(now.Add(time.Minute).Unix())},
|
||||
{Msg: &r3, Score: float64(now.Add(time.Minute).Unix())},
|
||||
{Msg: &r4, Score: float64(now.Add(time.Minute).Unix())},
|
||||
},
|
||||
wantDead: []*base.TaskMessage{&r1},
|
||||
},
|
||||
@ -161,8 +162,9 @@ func TestProcessorRetry(t *testing.T) {
|
||||
time.Sleep(tc.wait)
|
||||
p.terminate()
|
||||
|
||||
cmpOpt := cmpopts.EquateApprox(0, float64(time.Second)) // allow up to second difference in zset score
|
||||
gotRetry := h.GetRetryEntries(t, r)
|
||||
if diff := cmp.Diff(tc.wantRetry, gotRetry, h.SortZSetEntryOpt); diff != "" {
|
||||
if diff := cmp.Diff(tc.wantRetry, gotRetry, h.SortZSetEntryOpt, cmpOpt); diff != "" {
|
||||
t.Errorf("mismatch found in %q after running processor; (-want, +got)\n%s", base.RetryQueue, diff)
|
||||
}
|
||||
|
||||
|
@ -36,11 +36,11 @@ func TestScheduler(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
initScheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: now.Add(time.Hour).Unix()},
|
||||
{Msg: t2, Score: now.Add(-2 * time.Second).Unix()},
|
||||
{Msg: t1, Score: float64(now.Add(time.Hour).Unix())},
|
||||
{Msg: t2, Score: float64(now.Add(-2 * time.Second).Unix())},
|
||||
},
|
||||
initRetry: []h.ZSetEntry{
|
||||
{Msg: t3, Score: time.Now().Add(-500 * time.Millisecond).Unix()},
|
||||
{Msg: t3, Score: float64(time.Now().Add(-500 * time.Millisecond).Unix())},
|
||||
},
|
||||
initQueue: []*base.TaskMessage{t4},
|
||||
wait: pollInterval * 2,
|
||||
@ -50,9 +50,9 @@ func TestScheduler(t *testing.T) {
|
||||
},
|
||||
{
|
||||
initScheduled: []h.ZSetEntry{
|
||||
{Msg: t1, Score: now.Unix()},
|
||||
{Msg: t2, Score: now.Add(-2 * time.Second).Unix()},
|
||||
{Msg: t3, Score: now.Add(-500 * time.Millisecond).Unix()},
|
||||
{Msg: t1, Score: float64(now.Unix())},
|
||||
{Msg: t2, Score: float64(now.Add(-2 * time.Second).Unix())},
|
||||
{Msg: t3, Score: float64(now.Add(-500 * time.Millisecond).Unix())},
|
||||
},
|
||||
initRetry: []h.ZSetEntry{},
|
||||
initQueue: []*base.TaskMessage{t4},
|
||||
|
Loading…
Reference in New Issue
Block a user