2
0
mirror of https://github.com/hibiken/asynq.git synced 2026-05-06 20:15:57 +08:00

Track in-progress tasks with redis SET

This commit is contained in:
Ken Hibino
2019-11-21 21:45:27 -08:00
parent c84287d7ab
commit 67a9e8aa00
4 changed files with 56 additions and 18 deletions

View File

@@ -51,7 +51,7 @@ func TestPush(t *testing.T) {
}
}
func TestBPopImmediateReturn(t *testing.T) {
func TestDequeueImmediateReturn(t *testing.T) {
r := setup()
msg := &taskMessage{
Type: "GenerateCSVExport",
@@ -60,19 +60,31 @@ func TestBPopImmediateReturn(t *testing.T) {
}
r.push(msg)
res, err := r.bpop(time.Second, "asynq:queues:csv")
res, err := r.dequeue(time.Second, "asynq:queues:csv")
if err != nil {
t.Fatalf("r.bpop() failed: %v", err)
}
if !cmp.Equal(res, msg) {
t.Errorf("cmp.Equal(res, msg) = %t, want %t", false, true)
}
jobs := client.SMembers(inProgress).Val()
if len(jobs) != 1 {
t.Fatalf("len(jobs) = %d, want %d", len(jobs), 1)
}
var tm taskMessage
if err := json.Unmarshal([]byte(jobs[0]), &tm); err != nil {
t.Fatalf("json.Marshal() failed: %v", err)
}
if diff := cmp.Diff(res, &tm); diff != "" {
t.Errorf("cmp.Diff(res, tm) = %s", diff)
}
}
func TestBPopTimeout(t *testing.T) {
func TestDequeueTimeout(t *testing.T) {
r := setup()
_, err := r.bpop(time.Second, "asynq:queues:default")
_, err := r.dequeue(time.Second, "asynq:queues:default")
if err != errQueuePopTimeout {
t.Errorf("err = %v, want %v", err, errQueuePopTimeout)
}