Files
pfm/PostFundManagement.Jobs/JobsWorker.cs
T
2026-10-28 18:04:52 +02:00

33 lines
1.3 KiB
C#

using PostFundManagement.Application.Events;
using PostFundManagement.Domain.Abstractions;
using PostFundManagement.Domain.Configuration.Email;
namespace PostFundManagement.Jobs;
public class JobsWorker(IJobOrchestrator jobOrchestrator, IFeatureManager featureManager,
ILogger<JobsWorker> logger, IOptions<SmtpSettings> emailOptions) : BackgroundService
{
readonly SmtpSettings emailSettings = emailOptions.Value;
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
if (!await featureManager.IsEnabledAsync(nameof(JobsWorker)))
{
logger.LogInformation("Recurring job automatic registration disabled.");
return;
}
if (await featureManager.IsEnabledAsync(FeatureEmailProcessor))
await jobOrchestrator.ScheduleAsync(ProcessEmailEvent.Create(), "0 */5 * * * ?", stoppingToken);
if (await featureManager.IsEnabledAsync(FeatureLateProjectReminder))
await jobOrchestrator.ScheduleAsync(LateProjectEvent.Create(), "0 30 6 * * ?", stoppingToken);
if (await featureManager.IsEnabledAsync(FeatureNonCompliantProjectCheck))
await jobOrchestrator.ScheduleAsync(NonCompliantProjectEvent.Create(), "0 0 7 ? * MON", stoppingToken);
logger.LogInformation("Recurring jobs have been registered or updated.");
}
}