springboot集成xxl-job完整版

前言

    最新开始研究xxl-job,之前搞过spring 集成的,现在来说下与springboot集成的,还是有些不一样的。

正文

学习通道

    xxl-job 源码和文档地址:访问链接

部署调度中心

初始化数据库脚本

     在github(https://github.com/xuxueli/xxl-job)下载xxl-job 的源码 ,用idea打开后项目目录结构如下图所示:
在这里插入图片描述
    在db文件夹下找到*.sql的脚本文件,在本地数据库(因为我把定时器放在本地)执行脚本,建立xxl-job的数据库,如下图(截图中为可视化mysql数据的工具 Navicat):
在这里插入图片描述

配置调度中心

     找到xxl-job xxl-job-admin 工程下的属性文件,修改数据库配置为刚刚配置的本地数据源:主要修改url,username,password,如下图:
在这里插入图片描述
     提示:这块儿还可以配置报警邮箱,当定时任务执行出现问题了,邮箱的主人会第一时间收到它的通知;

部署调度中心

     部署调度中心(xxl-job-admin),访问调度中心的管理控制页面:可以直接在idea 中启动程序,也可以将程序打包(maven package),用 “java -jar jar包名称 -d”等后台启动调度中心;
     启动成功后,根据日志提示信息(http://localhost:8080/xxl-job-admin)访问管理页面:账号 admin | 默认初始密码 123456
在这里插入图片描述
     登录成功,显示页面(备注:下方截图是本地已经配置好的调度中心及定时任务)
在这里插入图片描述

创建执行器

     因本地工程是springboot的,所以创建一个Springboot版本的执行器;

导入maven 依赖

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

配置yml文件或属性文件 (此处以yml文件为例)

xxl:
  job:
    admin:
      # 地址为刚刚配置的调度中心的访问地址 
      addresses: http://127.0.0.1:8080/xxl-job-admin
    executor:
      # 自定义appName(执行器名称)
      appname: xxl-job-appName
      # ip 可以写 (程序跑在的机器ip上),也可以不写
      ip:
      port: 9999
      # 执行器日志文件存储路径
      logpath: /data/applogs/xxl-job/jobhandler
      # 设置日志过期时间  -1表示永不过期 
      logretentiondays: -1
      accessToken:

编写配置文件,读取yml文件刚刚配置的属性

package com.cxqz.nlp.config;

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;

/**
 * xxl-job config
 *
 * @author xuxueli 2017-04-28
 */
@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(initMethod = "start", destroyMethod = "destroy")
    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;
    }
}

编写任务

(任务可以理解为想要定时任务执行的东西,这里我调用的是用户等级更新接口)

@JobHandler(value = "testJobHandler")
@Component
public class TestHandler extends IJobHandler {
    @Autowired
    private UserService userService;
    
    @Override
    public ReturnT<String> execute(String param) throws Exception {
        XxlJobLogger.log(" >>用户等级更新任务开始执行....");
        try {
            //自定义调用接口
            userService.updateLevel();
            return SUCCESS;
        } catch (Exception e) {
            XxlJobLogger.log(e);
            return FAIL;
        }
    }
}

启动执行器

    启动Springboot 程序,以便调度中心可以找到执行器;

新建执行器

    在调用中心中新建执行器
    打开管理页面,到【执行器管理】中新建执行器,如下图:
在这里插入图片描述
    填写执行器信息,如下图:
在这里插入图片描述
    设置 【自动注册】后的执行器地址:
在这里插入图片描述

新增任务

    新增任务,打开【任务管理】,选择刚添加的【测试执行器】,选择【新增】,如下图:
在这里插入图片描述
    添加任务信息,绑定程序中写的JobHandler,如下图:
在这里插入图片描述

执行(启动)任务,查看执行情况

现在可以启动任务了,找到刚添加的任务,选择【执行一次】或【启动】,这里我选择了【执行一次】:
在这里插入图片描述
    想要查看执行情况,选择上图中的【查询日志】,将会看到“调度备注”和“执行日志”;
在这里插入图片描述
    调度备注 详情:
在这里插入图片描述
    执行日志 详情:
在这里插入图片描述
    这样,利用定时任务框架执行任务就成功了~

总结

     Springboot 集成 xxl-job 完整版教程到此结束,更多内容请移步到xxl-job官网 或者下方留言 也行啊,大概一年前在公司分享过xxl-job,时间过的真快~
     PS: 刚刚发现【XXL社区】还有很多项目,相当的厉害鸭!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的大白啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值