Show deadline data in ActiveTasksTable

This commit is contained in:
Ken Hibino 2021-01-27 16:16:38 -08:00
parent 3c43624927
commit ae7e0730bc
4 changed files with 18 additions and 7 deletions

View File

@ -102,6 +102,12 @@ type ActiveTask struct {
// a worker started working on the task only a few moments ago, and started time
// data is not available.
Started string `json:"start_time"`
// Deadline indicates the time by which the worker needs to finish its task.
//
// Value is either time formatted in RFC3339 format, or "-" which indicates that
// the data is not available yet.
Deadline string `json:"deadline"`
}
func toActiveTask(t *asynq.ActiveTask) *ActiveTask {

View File

@ -43,22 +43,24 @@ func newListActiveTasksHandlerFunc(inspector *asynq.Inspector) http.HandlerFunc
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// m maps taskID to started time.
m := make(map[string]time.Time)
// m maps taskID to WorkerInfo.
m := make(map[string]*asynq.WorkerInfo)
for _, srv := range servers {
for _, w := range srv.ActiveWorkers {
if w.Task.Queue == qname {
m[w.Task.ID] = w.Started
m[w.Task.ID] = w
}
}
}
activeTasks := toActiveTasks(tasks)
for _, t := range activeTasks {
started, ok := m[t.ID]
workerInfo, ok := m[t.ID]
if ok {
t.Started = started.Format(time.RFC3339)
t.Started = workerInfo.Started.Format(time.RFC3339)
t.Deadline = workerInfo.Deadline.Format(time.RFC3339)
} else {
t.Started = "-"
t.Deadline = "-"
}
}

View File

@ -249,6 +249,7 @@ export interface ActiveTask extends BaseTask {
id: string;
queue: string;
start_time: string;
deadline: string;
max_retry: number;
retried: number;
error_message: string;

View File

@ -37,7 +37,7 @@ import TablePaginationActions, {
import TableActions from "./TableActions";
import { usePolling } from "../hooks";
import { ActiveTaskExtended } from "../reducers/tasksReducer";
import { timeAgo, uuidPrefix } from "../utils";
import { durationBefore, timeAgo, uuidPrefix } from "../utils";
import { TableColumn } from "../types/table";
const useStyles = makeStyles((theme) => ({
@ -412,7 +412,9 @@ function Row(props: RowProps) {
className={classes.noBottomBorder}
align="right"
>
TODO: In 30s
{task.deadline === "-"
? "-"
: durationBefore(task.deadline)}
</TableCell>
</TableRow>
</TableBody>