[Megrez Boot] starter-xxljob

XXL-JOB是一个轻量级分布式任务调度平台。本项目基于Spring Boot自动配置XxlJobSpringExecutor,使开发任务执行器更方便,快捷。

项目源码:Gitee

简介

megrez.boot.autoconfigure.xxljob.XxlJobProperties属性配置

@Data
@ConfigurationProperties(prefix = "xxl.job")
public class XxlJobProperties {
    /** 执行器通讯TOKEN [选填]:非空时启用 */
    private String accessToken;
    private Admin admin = new Admin();
    private Executor executor = new Executor();
    
    @Data
    public static class Admin {
        /**
         * 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册
         */
        private String addresses;
    }

    @Data
    public static class Executor {
        /** 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册 */
        private String appname;
        /**
         * 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“
         * 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
         */
        private String address;
        /**
         * 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和
         * "调度中心请求并触发任务"
         */
        private String ip;
        private int port = 9999;
        /** 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径; */
        private String logpath;
        /** 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能; */
        private int logretentiondays = 30;
    }
}

megrez.boot.autoconfigure.xxljob.XxlJobAutoConfiguration自动配置

@Slf4j
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ XxlJobSpringExecutor.class })
@EnableConfigurationProperties(XxlJobProperties.class)
public class XxlJobAutoConfiguration {
    
    @Bean
    @ConditionalOnMissingBean
    public XxlJobSpringExecutor xxlJobSpringExecutor(XxlJobProperties properties) {
        log.info("Initializing XxlJobSpringExecutor");

        XxlJobSpringExecutor rslt = new XxlJobSpringExecutor();
        rslt.setAdminAddresses(properties.getAdmin().getAddresses());
        rslt.setAppname(properties.getExecutor().getAppname());
        rslt.setAddress(properties.getExecutor().getAddress());
        rslt.setIp(properties.getExecutor().getIp());
        rslt.setPort(properties.getExecutor().getPort());
        rslt.setAccessToken(properties.getAccessToken());
        rslt.setLogPath(properties.getExecutor().getLogpath());
        rslt.setLogRetentionDays(properties.getExecutor().getLogretentiondays());
        return rslt;
    }
}

更详细的实现参考源码。

还有更多的项目可以参考,megrez-job是计划任务服务,可以自定义计划任务,新增任务配置,启动,关闭任务,查看任务日志等功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值