修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
1.23 KiB
NewLife.JT808
using Microsoft.Extensions.Hosting;
using JT808.Data;
using Microsoft.Extensions.Hosting;
using NewLife.Log;

namespace JT808.Server.HostedServices;

/// <summary>启动预热服务</summary>
/// <remarks>
/// 在 JT808 网关服务启动前预热加载关键数据(产品、设备白名单等),
/// 防止连接冲击。参考 GPS808 的 PreheatHostedService。
/// </remarks>
public class PreheatHostedService : IHostedService
{
    public Task StartAsync(CancellationToken cancellationToken)
    {
        XTrace.WriteLine("开始预热加载数据...");
        try
        {
            // 预热产品缓存
            var products = Product.FindAllWithCache();
            XTrace.WriteLine("产品缓存预热完成:{0} 条", products.Count);

            // 预热在线设备
            var onlines = DeviceOnline.FindAllWithCache();
            XTrace.WriteLine("设备在线缓存预热完成:{0} 条", onlines.Count);
        }
        catch (Exception ex)
        {
            XTrace.WriteLine("预热加载异常(可忽略):{0}", ex.Message);
        }
        XTrace.WriteLine("预热加载完成");
        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
}