34 lines
No EOL
1.1 KiB
C#
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();
|
|
}
|
|
}
|
|
} |