mirror of
https://github.com/simon987/task_tracker.git
synced 2025-04-19 18:16:45 +00:00
Show completed tasks per second
This commit is contained in:
parent
13290d3c55
commit
e4936cd3c5
@ -63,6 +63,7 @@ func (api *WebAPI) SubmitTask(r *Request) {
|
|||||||
Message: "Too many requests",
|
Message: "Too many requests",
|
||||||
RateLimitDelay: delay,
|
RateLimitDelay: delay,
|
||||||
}, 429)
|
}, 429)
|
||||||
|
reservation.Cancel()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,6 +115,7 @@ func (api *WebAPI) GetTaskFromProject(r *Request) {
|
|||||||
Message: "Too many requests",
|
Message: "Too many requests",
|
||||||
RateLimitDelay: delay,
|
RateLimitDelay: delay,
|
||||||
}, 429)
|
}, 429)
|
||||||
|
reservation.Cancel()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,10 @@
|
|||||||
<p>{{"project.motd" | translate}}:</p>
|
<p>{{"project.motd" | translate}}:</p>
|
||||||
<pre *ngIf="project">{{project.motd}}</pre>
|
<pre *ngIf="project">{{project.motd}}</pre>
|
||||||
|
|
||||||
|
<p>{{"project.task_per_second" | translate}}:
|
||||||
|
<span class="text-mono" *ngIf="project">{{avgTask | number}}/s</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div style="display: flex; align-items: center; justify-content: center">
|
<div style="display: flex; align-items: center; justify-content: center">
|
||||||
<div id="timeline-wrapper">
|
<div id="timeline-wrapper">
|
||||||
<canvas id="timeline"></canvas>
|
<canvas id="timeline"></canvas>
|
||||||
|
@ -26,6 +26,7 @@ export class ProjectDashboardComponent implements OnInit {
|
|||||||
private timeline: Chart;
|
private timeline: Chart;
|
||||||
private statusPie: Chart;
|
private statusPie: Chart;
|
||||||
private assigneesPie: Chart;
|
private assigneesPie: Chart;
|
||||||
|
private avgTask: number;
|
||||||
|
|
||||||
|
|
||||||
private colors = {
|
private colors = {
|
||||||
@ -336,6 +337,8 @@ export class ProjectDashboardComponent implements OnInit {
|
|||||||
this.assignees = data.content.assignees;
|
this.assignees = data.content.assignees;
|
||||||
this.setupAssigneesPie();
|
this.setupAssigneesPie();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.averageTaskPerSecond();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
@ -371,6 +374,27 @@ export class ProjectDashboardComponent implements OnInit {
|
|||||||
this.setPaused(false)
|
this.setPaused(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private averageTaskPerSecond() {
|
||||||
|
|
||||||
|
const averageDelta = ([x, ...xs]) => {
|
||||||
|
if (x === undefined)
|
||||||
|
return NaN;
|
||||||
|
else
|
||||||
|
return xs.reduce(
|
||||||
|
([acc, last], x) => [acc + (x - last), x],
|
||||||
|
[0, x]
|
||||||
|
) [0] / xs.length
|
||||||
|
};
|
||||||
|
|
||||||
|
let interval = this.snapshots.length > 1 ? this.snapshots[0].time_stamp - this.snapshots[1].time_stamp : 0;
|
||||||
|
|
||||||
|
if (interval != 0) {
|
||||||
|
this.avgTask = averageDelta(this.snapshots.reverse().map(s => s.closed_task_count) as any) / interval;
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private setPaused(paused: boolean) {
|
private setPaused(paused: boolean) {
|
||||||
this.dialog.open(AreYouSureComponent, {
|
this.dialog.open(AreYouSureComponent, {
|
||||||
width: '250px',
|
width: '250px',
|
||||||
|
@ -73,7 +73,8 @@
|
|||||||
"reset_response": "Reset failed tasks: ",
|
"reset_response": "Reset failed tasks: ",
|
||||||
"assign_rate": "Task assign rate limit",
|
"assign_rate": "Task assign rate limit",
|
||||||
"submit_rate": "Task submit rate limit",
|
"submit_rate": "Task submit rate limit",
|
||||||
"rate": "per second"
|
"rate": "per second",
|
||||||
|
"task_per_second": "Completed tasks per second"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"title": "Dashboard for",
|
"title": "Dashboard for",
|
||||||
|
@ -73,7 +73,8 @@
|
|||||||
"reset_response": "Réinitialisé les tâches en échec: ",
|
"reset_response": "Réinitialisé les tâches en échec: ",
|
||||||
"assign_rate": "Taux d'assignation de tâches",
|
"assign_rate": "Taux d'assignation de tâches",
|
||||||
"submit_rate": "Taux de soumission de tâches",
|
"submit_rate": "Taux de soumission de tâches",
|
||||||
"rate": "par seconde"
|
"rate": "par seconde",
|
||||||
|
"task_per_second": "Tâches par seconde"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"title": "Tableau de bord pour ",
|
"title": "Tableau de bord pour ",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user