mirror of
https://github.com/hibiken/asynq.git
synced 2024-12-26 07:42:17 +08:00
Fix ListSchedulerEnqueueEvents to list recent events first
This commit is contained in:
parent
38509e309f
commit
196d66f221
@ -855,7 +855,7 @@ func (r *RDB) ListSchedulerEntries() ([]*base.SchedulerEntry, error) {
|
|||||||
// ListSchedulerEnqueueEvents returns the list of scheduler enqueue events.
|
// ListSchedulerEnqueueEvents returns the list of scheduler enqueue events.
|
||||||
func (r *RDB) ListSchedulerEnqueueEvents(entryID string, pgn Pagination) ([]*base.SchedulerEnqueueEvent, error) {
|
func (r *RDB) ListSchedulerEnqueueEvents(entryID string, pgn Pagination) ([]*base.SchedulerEnqueueEvent, error) {
|
||||||
key := base.SchedulerHistoryKey(entryID)
|
key := base.SchedulerHistoryKey(entryID)
|
||||||
zs, err := r.client.ZRangeWithScores(key, pgn.start(), pgn.stop()).Result()
|
zs, err := r.client.ZRevRangeWithScores(key, pgn.start(), pgn.stop()).Result()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -3033,9 +3033,10 @@ func TestSchedulerEnqueueEvents(t *testing.T) {
|
|||||||
r := setup(t)
|
r := setup(t)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
now = time.Now()
|
now = time.Now()
|
||||||
oneDayAgo = now.Add(-24 * time.Hour)
|
oneDayAgo = now.Add(-24 * time.Hour)
|
||||||
oneHourAgo = now.Add(-1 * time.Hour)
|
fiveHoursAgo = now.Add(-5 * time.Hour)
|
||||||
|
oneHourAgo = now.Add(-1 * time.Hour)
|
||||||
)
|
)
|
||||||
|
|
||||||
type event struct {
|
type event struct {
|
||||||
@ -3047,22 +3048,26 @@ func TestSchedulerEnqueueEvents(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
entryID string
|
entryID string
|
||||||
events []*base.SchedulerEnqueueEvent
|
events []*base.SchedulerEnqueueEvent
|
||||||
|
want []*base.SchedulerEnqueueEvent
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
entryID: "entry123",
|
entryID: "entry123",
|
||||||
events: []*base.SchedulerEnqueueEvent{
|
events: []*base.SchedulerEnqueueEvent{
|
||||||
{
|
{TaskID: "task123", EnqueuedAt: oneDayAgo},
|
||||||
TaskID: "task123",
|
{TaskID: "task789", EnqueuedAt: oneHourAgo},
|
||||||
EnqueuedAt: oneDayAgo,
|
{TaskID: "task456", EnqueuedAt: fiveHoursAgo},
|
||||||
}, {
|
},
|
||||||
TaskID: "task456",
|
// Recent events first
|
||||||
EnqueuedAt: oneHourAgo,
|
want: []*base.SchedulerEnqueueEvent{
|
||||||
},
|
{TaskID: "task789", EnqueuedAt: oneHourAgo},
|
||||||
|
{TaskID: "task456", EnqueuedAt: fiveHoursAgo},
|
||||||
|
{TaskID: "task123", EnqueuedAt: oneDayAgo},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
entryID: "entry123",
|
entryID: "entry456",
|
||||||
events: []*base.SchedulerEnqueueEvent{},
|
events: nil,
|
||||||
|
want: nil,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3076,14 +3081,14 @@ loop:
|
|||||||
continue loop
|
continue loop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
got, err := r.ListSchedulerEnqueueEvents(tc.entryID)
|
got, err := r.ListSchedulerEnqueueEvents(tc.entryID, Pagination{Size: 20, Page: 0})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("ListSchedulerEnqueueEvents(%q) failed: %v", tc.entryID, err)
|
t.Errorf("ListSchedulerEnqueueEvents(%q) failed: %v", tc.entryID, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if diff := cmp.Diff(tc.events, got, h.SortSchedulerEnqueueEventOpt, timeCmpOpt); diff != "" {
|
if diff := cmp.Diff(tc.want, got, timeCmpOpt); diff != "" {
|
||||||
t.Errorf("ListSchedulerEnqueueEvent(%q) = %v, want %v; (-want,+got)\n%s",
|
t.Errorf("ListSchedulerEnqueueEvent(%q) = %v, want %v; (-want,+got)\n%s",
|
||||||
tc.entryID, got, tc.events, diff)
|
tc.entryID, got, tc.want, diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,12 +118,6 @@ func cronHistory(cmd *cobra.Command, args []string) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort entries by enqueuedAt timestamp.
|
|
||||||
sort.Slice(events, func(i, j int) bool {
|
|
||||||
x, y := events[i], events[j]
|
|
||||||
return x.EnqueuedAt.Unix() > y.EnqueuedAt.Unix()
|
|
||||||
})
|
|
||||||
|
|
||||||
cols := []string{"TaskID", "EnqueuedAt"}
|
cols := []string{"TaskID", "EnqueuedAt"}
|
||||||
printRows := func(w io.Writer, tmpl string) {
|
printRows := func(w io.Writer, tmpl string) {
|
||||||
for _, e := range events {
|
for _, e := range events {
|
||||||
|
Loading…
Reference in New Issue
Block a user