为啥要选择xxl-job?

原生的Spring-Task任务调度适用条件有限:因为原生的Spring-Task集成执行器模块、调度模块,两者是绑定死的。如果我们想去修改调度时间或修改执行器逻辑,就需要重新运行项目,非常局限。于是就诞生了XXL-Job分布式、轻量级、易拓展、具有可视化Dashboard的定时任务。

xxl-job官网

https://www.xuxueli.com/xxl-job/

Github地址:https://github.com/xuxueli/xxl-job/

Gitee地址:https://gitee.com/xuxueli0323/xxl-job/ 似乎不更新了

xxl-job项目结构介绍

去Github下载发布包,解压分为3个项目:

xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用,推荐这种方式;
xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器;
xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;
xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;

原理:将调度模块与任务模块解耦,通过调度模块去调用任务模块,提高了系统高可用与稳定性。

1、将项目导入Idea,将解压的文件/doc/db文件夹下的sql文件导入到mysql中

2、修改admin项目的 mysql配置信息

3、修改logback.xml 日志path配置,因为windows是没有此文件夹,添加.变为相对路径。

<property name="log.path" value="/data/applogs/xxl-job/xxl-job-admin.log"/>
修改为
<property name="log.path" value="./data/applogs/xxl-job/xxl-job-admin.log"/>

访问:http://127.0.0.1:8080/xxl-job-admin/。 账号:admin 密码:123456

以后我们就在这里修改任务调度

使用xxl-job

添加xxl-job依赖

        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.3.1</version>
        </dependency>