• XXL-Job和SpringBoot整合进行部署(全网最全整合部署)


    一、简介

    1.1 概述

            XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。  

    特性这里不多做介绍,可以去官网看。Spring自带的定时任务,无法进行集群,Quartz是个伪集群框架 不推荐集群时候进行使用。

    1.5 下载

    文档地址

    源码仓库地址

    中央仓库地址

    1. <dependency>
    2. <groupId>com.xuxueligroupId>
    3. <artifactId>xxl-job-coreartifactId>
    4. <version>${最新稳定版本}version>
    5. dependency>

    1.6 环境

    • Maven3+
    • Jdk1.8+
    • Mysql5.7+

    第一步:先克隆下来admin管理平台页面(这里用的Gitee,GitHub地址上面有)

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

    第二步:运行拉取下面项目里面doc/db/tables_xxl_job.sql 文件,在数据库工具中跑脚本。

    第三步:将其拷贝下来的项目进行启动,总共有三个模块,要全部启动,三个模块里面都有启动类,一键式启动。

    xxl-job-admin:后台管理界面,启动完成后,输入http://localhost:8083/xxl-job-admin 就可以访问了。

     默认账号密码:admin      123456

     点击新增按钮,即可创建新任务,这里重点需要填写 Core表达式,和 JobHandler,这个JobHandler 就是下面模块 @XxlJob("demoJobHandler")  注解里面的内容。

    点击执行一次,控制台即可打印出消息。你可以在该方法下面加一个自定义控制台输出。

    xxl-....-frameless:后台管理界面进入后默认里面有几个任务,可以在该模块里面更改代码

     xxl-job-....-springboot:该模块是给你看的SpringBoot的样例,因为我们肯定是自己要用SpringBoot整合xxl-job的,所以它提供了这样一个demo,我们到时候可以新建一个SpringBoot项目,只需要一个

    一、导入pom

    1. <dependency>
    2. <groupId>com.xuxueligroupId>
    3. <artifactId>xxl-job-coreartifactId>
    4. <version>2.3.1version>
    5. dependency>

    二、复制config/XxlJobConfig

    1. @Configuration
    2. public class XxlJobConfig {
    3. @Value("${xxl.job.admin.addresses}")
    4. private String adminAddresses;
    5. @Value("${xxl.job.accessToken}")
    6. private String accessToken;
    7. @Value("${xxl.job.executor.appname}")
    8. private String appname;
    9. @Value("${xxl.job.executor.address}")
    10. private String address;
    11. @Value("${xxl.job.executor.ip}")
    12. private String ip;
    13. @Value("${xxl.job.executor.port}")
    14. private int port;
    15. @Value("${xxl.job.executor.logpath}")
    16. private String logPath;
    17. @Value("${xxl.job.executor.logretentiondays}")
    18. private int logRetentionDays;
    19. @Bean
    20. public XxlJobSpringExecutor xxlJobExecutor() {
    21. XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
    22. xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
    23. xxlJobSpringExecutor.setAppname(appname);
    24. xxlJobSpringExecutor.setAddress(address);
    25. xxlJobSpringExecutor.setIp(ip);
    26. xxlJobSpringExecutor.setPort(port);
    27. xxlJobSpringExecutor.setAccessToken(accessToken);
    28. xxlJobSpringExecutor.setLogPath(logPath);
    29. xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
    30. return xxlJobSpringExecutor;
    31. }
    32. }

    三:复制application.proterties配置信息  注意调度中心的地址,我这里改成了8083,对应admin那个模块端口号也要改成80

    1. # xxl-job配置
    2. ### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册""任务结果回调";为空则关闭自动注册;
    3. xxl.job.admin.addresses=http://127.0.0.1:8083/xxl-job-admin
    4. ### 执行器通讯TOKEN [选填]:非空时启用;
    5. xxl.job.accessToken=default_token
    6. ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
    7. xxl.job.executor.appname=xxl-job-executor-sample
    8. ### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
    9. xxl.job.executor.address=
    10. ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册""调度中心请求并触发任务"
    11. xxl.job.executor.ip=
    12. ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
    13. xxl.job.executor.port=9999
    14. ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
    15. xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
    16. ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
    17. xxl.job.executor.logretentiondays=30

      如图,就是我新建的SpringBoot项目  整合xxl-job实现功能。

     该代码就是定时任务了。 

     

    二、如何部署

       部署分为两种方式,第一种:使用Docker,这种官网有介绍,首先拉取镜像,然后进行run 即可,注意端口放心,需要放行两个端口,一个是admin管理界面端口,一个是调度器端口9999

      使用docker部署(不推荐,可能会遇到端口等之类的问题)

    1. 1.拉取镜像
    2. docker pull xuxueli/xxl-job-admin:2.3.1
    3. 2.运行容器
    4. docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=666888" -p 8083:8080 -p 9091:9999 -v /tmp:/data/applogs --name xxl-job-admin -d --link mysql:mysql xuxueli/xxl-job-admin:2.3.1
    5. ##注意:运行之前 先要把数据库装了,并且跑脚本doc/xxl-job下面的数据库脚本。

     使用手动部署(推荐,这种很稳)还是一样的 要保证服务器里面数据库在运行,且跑了xxl数据库脚本。

       第一步:将其把拉取到本地的xxl-job项目打成成jar

     第二步:将其把jar包上传至服务器)

     第三步:跟部署普通Javaweb项目一样了,敲部署命令(java - jar xxl-admin 当然了 一般使用nohup 命令 这里不多做介绍 )

    第四步:将其把SpringBoot整合xxl-job项目上传到服务器 进行部署。

    然后输入 ip + 端口号 + /xxl-job-admin 就能访问到控制台界面了,就可以添加任务了,其它步骤跟上面一样了。

  • 相关阅读:
    LFMCW雷达测速基础- 多普勒频移和2DFFT
    树莓派系统的安装教程
    Java集合框架【二容器(Collection)[ArrayList]】
    红细胞膜包被雷公藤甲素-红素仿生共载脂质体/双重细胞膜包裹负载siEFNA1蛋黄脂质纳米制备
    GAT-图注意力模型
    【python函数】torch.nn.Embedding函数用法图解
    Symbol基本数据类型
    二十、处理器调度(RR时间片轮转,MLFQ多级反馈队列,CFS完全公平调度器,优先级翻转;多处理器调度)
    多关键词高亮显示
    基于B/S架构,包括PC后台管理端、APP移动端、可视化大屏端的智慧工地源码
  • 原文地址:https://blog.csdn.net/qq_42217363/article/details/126381895