Files
pfm/PostFundManagement.Jobs/JobsWorker.cs
T

32 lines
1.2 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(), "", stoppingToken);
// TODO: Add job to check for non-compliant projects once a week
logger.LogInformation("Recurring jobs have been registered or updated.");
}
}