server-master/srcs/FamilyServer/FamilySystem.cs
2026-02-10 18:21:30 +01:00

34 lines
No EOL
1.1 KiB
C#

using System;
using System.Threading;
using System.Threading.Tasks;
using FamilyServer.Managers;
using Microsoft.Extensions.Hosting;
using PhoenixLib.Logging;
namespace FamilyServer
{
public class FamilySystem : BackgroundService
{
private static readonly TimeSpan Interval = TimeSpan.FromMinutes(Convert.ToUInt32(Environment.GetEnvironmentVariable(EnvironmentConsts.FamilyServerSaveIntervalMinutes) ?? "5"));
private readonly IFamilyWarehouseManager _familyWarehouseManager;
public FamilySystem(IFamilyWarehouseManager familyWarehouseManager) => _familyWarehouseManager = familyWarehouseManager;
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
Log.Info("[FAMILY_SYSTEM] Loaded");
while (!stoppingToken.IsCancellationRequested)
{
await ProcessMain();
await Task.Delay(Interval, stoppingToken);
}
}
public async Task ProcessMain()
{
await _familyWarehouseManager.FlushWarehouseSaves();
}
}
}