xxl-job分布任务调度框架-1入门应用

一、xxl-job分布任务调度框架部署

1、部署可参考官方文档

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

1.1、下载源码

http://gitee.com/xuxueli0323/xxl-job

1.2、执行源码路径下sql语句

/xxl-job/doc/db/tables_xxl_job.sql

1.3、部署“调度中心”项目

解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:

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

1.4、修改“调度中心”项目配置

/xxl-job/xxl-job-admin/src/main/resources/application.properties

调度中心配置内容说明:
我主要修改了数据库配置这一块,其它配置说明看官方文档更清楚

### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

1.5、启动“调度中心”项目

执行完sql后,直接在idea中运行调度中心启动类main方法即可在本地启动这个项目
xxl-job分布任务调度框架-1入门应用_第1张图片

1.6、访问“调度中心”后台

http://localhost:8080/xxl-job-admin/
用户名/密码: admin/123456
xxl-job分布任务调度框架-1入门应用_第2张图片

2、部署“执行器示例”项目

刚开始看xxl-job这个分布框架,可以先直接按官方文档部署一下它的实例项目代码,并配置一些测试job

2.1、源码中执行器示例项目

如果调度中心项目的端口没有修改并是在本地部署的话,那么这个执行器示例目的配置不用修改任何,直接运行启动就可运行起来
xxl-job分布任务调度框架-1入门应用_第3张图片
如果直接在自己业务项目中配执行器,那么可把执行器示例项目中的配置加到自己的项目即可。

2.2、加入依赖

确认pom文件中引入了 “xxl-job-core” 的maven依赖;

 
 
      com.xuxueli
      xxl-job-core
      ${project.parent.version}
  

2.3、配置文件地址:

### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=xxl-job-executor-sample
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30

2.4、执行器组件配置

@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
    logger.info(">>>>>>>>>>> xxl-job config init.");
    XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
    xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
    xxlJobSpringExecutor.setAppName(appName);
    xxlJobSpringExecutor.setIp(ip);
    xxlJobSpringExecutor.setPort(port);
    xxlJobSpringExecutor.setAccessToken(accessToken);
    xxlJobSpringExecutor.setLogPath(logPath);
    xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
    return xxlJobSpringExecutor;
}

2.5、新建一个任务bean方式

在项目新建一个方法,执行任务业务逻辑

@Component
public class SampleXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public ReturnT<String> demoJobHandler(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");


        System.out.print("test");
        System.out.print(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));

        for (int i = 0; i < 5; i++) {
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        return ReturnT.SUCCESS;
    }
}

在后台配置

xxl-job分布任务调度框架-1入门应用_第4张图片

2.6、“GLUE模式(Java)” 任务开发

新增任务

xxl-job分布任务调度框架-1入门应用_第5张图片

在线编写任务方法

xxl-job分布任务调度框架-1入门应用_第6张图片
选择GLUE IDE
xxl-job分布任务调度框架-1入门应用_第7张图片
编写完成后,选择保存

执行测试

xxl-job分布任务调度框架-1入门应用_第8张图片
可执行一次,查看任务日志,是否执行成功

你可能感兴趣的:(java)