package com.iailab.framework.quartz.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.validation.annotation.Validated; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; /** * XXL-Job 配置类 */ @ConfigurationProperties("xxl.job") @Validated @Data public class XxlJobProperties { /** * 是否开启,默认为 true 关闭 */ private Boolean enabled = true; /** * 访问令牌 */ private String accessToken; /** * 控制器配置 */ @NotNull(message = "控制器配置不能为空") private AdminProperties admin; /** * 执行器配置 */ @NotNull(message = "执行器配置不能为空") private ExecutorProperties executor; /** * XXL-Job 调度器配置类 */ @Data @Valid public static class AdminProperties { /** * 调度器地址 */ @NotEmpty(message = "调度器地址不能为空") private String addresses; } /** * XXL-Job 执行器配置类 */ @Data @Valid public static class ExecutorProperties { /** * 默认端口 * * 这里使用 -1 表示随机 */ private static final Integer PORT_DEFAULT = -1; /** * 默认日志保留天数 * * 如果想永久保留,则设置为 -1 */ private static final Integer LOG_RETENTION_DAYS_DEFAULT = 30; /** * 应用名 */ @NotEmpty(message = "应用名不能为空") private String appName; /** * 执行器的 IP */ private String ip; /** * 执行器的 Port */ private Integer port = PORT_DEFAULT; /** * 日志地址 */ @NotEmpty(message = "日志地址不能为空") private String logPath; /** * 日志保留天数 */ private Integer logRetentionDays = LOG_RETENTION_DAYS_DEFAULT; } }