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; }
}