SpringBoot集成xxl-job分布式任务调度平台

一、xxl-job模块介绍

项目地址:https://github.com/ZiXinZhu/xxl-job
在这里插入图片描述
介绍下上面的三个模块

  • xxl-job-admin

xxl-job-admin是xxl-job分布式任务调度平台在该平台配置和执行我们想要调度的任务

  • xxl-job-core

xxl-job-core是一个工具包,分布式任务调度平台与应用之间的长连接等都在这个包实现。xxl-job-admin和我们的任务应用都需要导入该包

  • xxl-job-executor

xxl-job-executor是我自己写的一个简单测试任务的应用

二、配置xxl-job-admin

将xxl-job代码下载到本地修改xxl-job-admin配置

1.创建数据库

在这里插入图片描述
将tables_xxl_job.sql ddl脚本在xxl_job数据库中执行创建数据库

2.配置xxl-job-admin的application.properties文件

在这里插入图片描述
只需要修改上面这两个地方,①将数据源配置成自己的,②配置邮箱账号密码,注意这个密码不是平时的邮箱登录密码,是第三方登录授权密码在下图位置获取在这里插入图片描述
…中间省略一大截
在这里插入图片描述

3.启动

注意:如果要打包到服务器启动需要先install root,这样才能将xxl-job-core install到本地使用,再打包xxl-job-admin就不会报错了
在这里插入图片描述
启动项目访问地址:http://127.0.0.1:8080/xxl-job-admin/ 如下:那么xxl-job-admin就配置启动完毕了
在这里插入图片描述

三、创建xxl-job-executor应用及其任务

项目结构:
在这里插入图片描述

1.添加依赖

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

这个依赖使我们上面install root到本地仓库的,可以直接引入并使用

2.配置application.properties文件

# web port
server.port=8082

# log config
logging.config=classpath:static/logback.xml


### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job executor address
# 应用名称管理后台配置任务时会用到
xxl.job.executor.appname=tinelion
xxl.job.executor.ip=
xxl.job.executor.port=9999

### xxl-job, access token
xxl.job.accessToken=

### xxl-job log path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job log retention days
xxl.job.executor.logretentiondays=30

3.创建xxl-job配置类

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.executor.appname}")
    private String appName;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @Value("${xxl.job.executor.logpath}")
    private String logPath;

    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;


    @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;
    }
}

4.创建xxl-job测试类

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import org.springframework.stereotype.Component;


/**
 * 任务Handler示例(Bean模式)
 *
 * 开发步骤:
 * 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
 * 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例;
 * 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。
 * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
 *
 * @author xuxueli 2015-12-19 19:43:36
 */
 //任务名称管理后台配置任务时会用到
@JobHandler(value="zzxHandler")
@Component
public class DemoJobHandler extends IJobHandler {

	@Override
	public ReturnT<String> execute(String param) throws Exception {
		System.out.println("成功!");
		return SUCCESS;
	}

}

到这里我们的任务应用就创建完了

四、xxl-job-admin管理后台任务配置及执行

分别启动xxl-job-admin模块和xxl-job-executor模块

1.任务执行器配置应用名

在这里插入图片描述
这个AppName就是xxl-job-executor应用application.properties文件下的xxl.job.executor.appname=tinelion

2.任务管理中加入任务

在这里插入图片描述
这里的JobHandler就是xxl-job-executor应用测试类@JobHandler(value=“zzxHandler”)注解里面的名称

3.配置好后执行任务

在这里插入图片描述

  • 失败
    在这里插入图片描述
    在这里插入图片描述
  • 启动应用再次测试,成功!
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值