| μμ€λͺ | +μ€λ₯ μ’ λ₯ | +λ©μμ§ | +λ°μ μκ° | +
|---|---|---|---|
| @error.SourceName | +@error.ErrorKind | +@(error.ErrorMessage ?? "-") | +@error.CreatedAt | +
| μ€λ₯κ° μμ΅λλ€ | +|||
| ν°μ»€ | +λ°μ΄ν°μ | +μμ€ | +μμ§ μκ° | +
|---|---|---|---|
| @snapshot.Ticker | +@snapshot.DatasetName | +@snapshot.SourceName | +@snapshot.CapturedAt | +
| μ€λ μ·μ΄ μμ΅λλ€ | +|||
| μμ ID | +μν | +μμ μκ° | +μ§νλ₯ | +
|---|---|---|---|
@run.RunId |
+ μ§ν μ€ | +@(DateTime.TryParse(run.StartedAt?.ToString(), out var dt) ? dt.ToString("yyyy-MM-dd HH:mm:ss") : (run.StartedAt?.ToString() ?? "-")) | +
+ @if (run.TotalSnapshots > 0)
+ {
+ var progressPercent = (int)((run.TotalSnapshots * 100) / (run.TotalSnapshots + run.TotalErrors + 1));
+
+
+
+ }
+ else
+ {
+ -
+ }
+ |
+
| μ§ν μ€μΈ μμ μ΄ μμ΅λλ€ | +|||
| μ€ν ID | +μλ¬ μ’ λ₯ | +λ©μμ§ | +λ°μ μκ° | +
|---|---|---|---|
@error.RunId |
+ @error.ErrorKind | +@(error.ErrorMessage?.Length > 50 ? error.ErrorMessage.Substring(0, 50) + "..." : error.ErrorMessage ?? "-") | +@(DateTime.TryParse(error.CreatedAt?.ToString(), out var dt) ? dt.ToString("HH:mm:ss") : (error.CreatedAt?.ToString() ?? "-")) | +
| μ΅κ·Ό μλ¬κ° μμ΅λλ€ | +|||
| μμ λͺ | +μ€μΌμ€ | +λ€μ μ€ν | +μν | +μμ | +
|---|---|---|---|---|
| + @job.JobName + | +@job.Schedule | +@(job.NextRun?.ToString("yyyy-MM-dd HH:mm:ss") ?? "-") | ++ @if (job.IsEnabled) + { + νμ± + } + else + { + λΉνμ± + } + | ++ μμ + | +
| μμ½λ μμ μ΄ μμ΅λλ€ | +||||
| μμ λͺ | +μμ μκ° | +μλ£ μκ° | +μμ μκ° | +κ²°κ³Ό | +
|---|---|---|---|---|
| @exec.JobName | +@exec.StartedAt.ToString("HH:mm:ss") | +@(exec.CompletedAt?.ToString("HH:mm:ss") ?? "-") | +@duration.ToString("F1")s | ++ @if (exec.IsSuccess) + { + μ±κ³΅ + } + else + { + μ€ν¨ + } + | +
| μ΅κ·Ό μ€ν κΈ°λ‘μ΄ μμ΅λλ€ | +||||