package com.zsElectric.boot.common.async;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 线程池配置属性类
 * 支持在application.yml中动态配置
 */
@Component
@Data
@ConfigurationProperties(prefix = "async.thread-pool")
public class ThreadPoolProperties {

    // 核心线程数
    private int corePoolSize = 10;
    
    // 最大线程数
    private int maxPoolSize = 50;
    
    // 队列容量
    private int queueCapacity = 1000;
    
    // 线程空闲存活时间（秒）
    private int keepAliveSeconds = 60;
    
    // 线程名称前缀
    private String threadNamePrefix = "async-business-";
    
    // 是否允许核心线程超时
    private boolean allowCoreThreadTimeOut = false;
    
    // 优雅关闭等待时间（秒）
    private int awaitTerminationSeconds = 30;
}