Skip to content

Commit

Permalink
Enrich StartupJobManager with logs
Browse files Browse the repository at this point in the history
  • Loading branch information
nulltoken committed Jan 22, 2025
1 parent c676998 commit f30257f
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/NCronJob/Execution/StartupJobManager.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
using Microsoft.Extensions.Logging;
using System.Globalization;
using System.Text;

namespace NCronJob;

internal class StartupJobManager(
internal partial class StartupJobManager(
JobRegistry jobRegistry,
JobProcessor jobProcessor,
JobExecutionProgressObserver observer)
JobExecutionProgressObserver observer,
TimeProvider timeProvider,
ILogger<StartupJobManager> logger)
{
public async Task ProcessStartupJobs(CancellationToken stopToken)
{
Expand All @@ -17,6 +20,8 @@ public async Task ProcessStartupJobs(CancellationToken stopToken)
return;
}

LogStartupJobsStart(logger, timeProvider.GetUtcNow());

List<JobRun> jobRuns = [];
var startupTasks = startupJobs.Select(definition =>
{
Expand All @@ -27,6 +32,8 @@ public async Task ProcessStartupJobs(CancellationToken stopToken)

await Task.WhenAll(startupTasks).ConfigureAwait(false);

LogStartupJobsCompletion(logger, timeProvider.GetUtcNow());

Exception[] faults = jobRuns
.Where(jr => jr.JobDefinition.ShouldCrashOnStartupFailure == true && jr.CurrentState.Type == JobStateType.Faulted)
.Select(jr => jr.CurrentState.Fault)
Expand All @@ -50,4 +57,10 @@ public async Task ProcessStartupJobs(CancellationToken stopToken)

private async Task CreateExecutionTask(JobRun job, CancellationToken stopToken) =>
await jobProcessor.ProcessJobAsync(job, stopToken).ConfigureAwait(false);

[LoggerMessage(LogLevel.Information, "Triggering startup jobs execution at {at:o}")]
private static partial void LogStartupJobsStart(ILogger logger, DateTimeOffset at);

[LoggerMessage(LogLevel.Information, "Completed startup jobs execution at {at:o}")]
private static partial void LogStartupJobsCompletion(ILogger logger, DateTimeOffset at);
}

0 comments on commit f30257f

Please sign in to comment.