server-master/srcs/MailServer/RecurrentJobs/MailSystem.cs
2026-02-10 18:21:30 +01:00

30 lines
No EOL
932 B
C#

using System;
using System.Threading;
using System.Threading.Tasks;
using MailServer.Managers;
using Microsoft.Extensions.Hosting;
namespace MailServer.RecurrentJobs
{
public class MailSystem : BackgroundService
{
private static readonly TimeSpan Interval = TimeSpan.FromSeconds(Convert.ToUInt32(Environment.GetEnvironmentVariable("MAIL_SERVER_SAVE_INTERVAL_SECONDS") ?? "10"));
private readonly MailManager _mailManager;
public MailSystem(MailManager mailManager) => _mailManager = mailManager;
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
await ProcessMain();
await Task.Delay(Interval, stoppingToken);
}
}
public async Task ProcessMain()
{
await _mailManager.FlushAll();
}
}
}