using PuppeteerSharp; namespace HtmlToPdfService.Core.Pool; /// /// 浏览器池接口 /// public interface IBrowserPool : IAsyncDisposable { /// /// 获取浏览器实例 /// /// 取消令牌 /// 浏览器实例 Task AcquireAsync(CancellationToken cancellationToken = default); /// /// 释放浏览器实例 /// /// 浏览器实例 void Release(IBrowser browser); /// /// 预热浏览器池(创建最小数量的实例) /// /// 取消令牌 Task WarmUpAsync(CancellationToken cancellationToken = default); /// /// 获取池状态信息 /// /// 池状态 BrowserPoolStatus GetStatus(); } /// /// 浏览器池状态 /// public class BrowserPoolStatus { /// /// 总实例数 /// public int TotalInstances { get; set; } /// /// 可用实例数 /// public int AvailableInstances { get; set; } /// /// 最大实例数 /// public int MaxInstances { get; set; } /// /// 当前正在使用的实例数 /// public int InUseInstances { get; set; } }