[backend/razor] Render display durations >1000ms properly on queue dashboard

This commit is contained in:
Laura Hausmann 2024-06-21 13:57:15 +02:00
parent 2e562b04d8
commit 503b8c5985
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
3 changed files with 33 additions and 17 deletions

View file

@ -33,4 +33,26 @@ public static class NumberExtensions
return result.ToString(); return result.ToString();
} }
public static string ToDurationDisplayString(this long input)
{
return input switch
{
< 1000 => $"{input} ms",
< 1000 * 60 => $"{Math.Round(input / 1000d / 60d, 2)} s",
< 1000 * 60 * 60 => $"{Math.Round(input / 60000d / 60d, 2)} m",
_ => $"{Math.Round(input / 60000d / 60d / 60d, 2)} h"
};
}
public static string ToDurationDisplayString(this int input)
{
return input switch
{
< 1000 => $"{input} ms",
< 1000 * 60 => $"{Math.Round(input / 1000d / 60d, 2)} s",
< 1000 * 60 * 60 => $"{Math.Round(input / 60000d / 60d, 2)} m",
_ => $"{Math.Round(input / 60000d / 60d / 60d, 2)} h"
};
}
} }

View file

@ -127,9 +127,9 @@ else
var id = job.Id.ToStringLower(); var id = job.Id.ToStringLower();
var additional = job.Status switch var additional = job.Status switch
{ {
Job.JobStatus.Queued => $"for {job.QueueDuration} ms", Job.JobStatus.Queued => $"for {job.QueueDuration.ToDurationDisplayString()}",
Job.JobStatus.Running => $"for {job.Duration.ToDurationDisplayString()}",
Job.JobStatus.Delayed => $"until {job.DelayedUntil?.ToDisplayStringTz() ?? "<unknown>"}", Job.JobStatus.Delayed => $"until {job.DelayedUntil?.ToDisplayStringTz() ?? "<unknown>"}",
Job.JobStatus.Running => $"for {job.Duration} ms",
Job.JobStatus.Completed => $"at {job.FinishedAt?.ToDisplayStringTz() ?? "<unknown>"}", Job.JobStatus.Completed => $"at {job.FinishedAt?.ToDisplayStringTz() ?? "<unknown>"}",
Job.JobStatus.Failed => $"at {job.FinishedAt?.ToDisplayStringTz() ?? "<unknown>"}", Job.JobStatus.Failed => $"at {job.FinishedAt?.ToDisplayStringTz() ?? "<unknown>"}",
_ => throw new ArgumentOutOfRangeException() _ => throw new ArgumentOutOfRangeException()

View file

@ -69,20 +69,14 @@
<td>@(Model.Job.DelayedUntil?.ToDisplayStringTz() ?? "<unknown>")</td> <td>@(Model.Job.DelayedUntil?.ToDisplayStringTz() ?? "<unknown>")</td>
</tr> </tr>
} }
@if (Model.Job.Duration < 10000) <tr>
{ <td>Duration</td>
<tr> <td>@Model.Job.Duration.ToDurationDisplayString()</td>
<td>Duration</td> </tr>
<td>@Model.Job.Duration ms</td> <tr>
</tr> <td>Queue duration</td>
} <td>@Model.Job.QueueDuration.ToDurationDisplayString()</td>
@if (Model.Job.QueueDuration < 10000) </tr>
{
<tr>
<td>Queue duration</td>
<td>@Model.Job.QueueDuration ms</td>
</tr>
}
@if (Model.Job.RetryCount > 0) @if (Model.Job.RetryCount > 0)
{ {
<tr> <tr>