首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >三分钟搞定 XXL-JOB 分布式任务调度平台

三分钟搞定 XXL-JOB 分布式任务调度平台

作者头像
芋道源码
发布于 2022-05-16 03:10:46
发布于 2022-05-16 03:10:46
1.5K00
代码可运行
举报
文章被收录于专栏:芋道源码1024芋道源码1024
运行总次数:0
代码可运行

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

来源:blog.csdn.net/weixin_51130354


前言

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

可以前往Gitee地址进行下载使用。

https://gitee.com/xuxueli0323/xxl-job.git

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

xxl-job-admin搭建

拉取代码

代码结构如下:

运行SQL文件至本地数据库

修改xxl-job-admin模块的yml文件

启动任务调度中心

浏览器访问默认地址:http://localhost:8080/xxl-job-admin

账号:admin 密码: 123456 (初始状态下)

登录成功

到此为止,第一阶段xxl-job-admin模块的部署就完成啦。

基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。 项目地址:https://github.com/YunaiV/onemall

整合springboot项目

此部分官方已经给出具体案例,我们只需对赶方案例进行整合或修改即可。

接下来就是如何整合到自己的springboot项目中

一、引入maven依赖

注意:此处版本要与xxl-job-admin中版本保持一致

二、引入配置类

只需引入XxlJobConfig配置类即可,其他配置类为该项目其他配置类,与此无关!

可以直接从拉取的项目中复制过来,无需任何修改!!!

复制此类到你的项目中即可!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

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

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

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

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

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

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

    @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.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

    /**
     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
     *
     *      1、引入依赖:
     *          <dependency>
     *             <groupId>org.springframework.cloud</groupId>
     *             <artifactId>spring-cloud-commons</artifactId>
     *             <version>${version}</version>
     *         </dependency>
     *
     *      2、配置文件,或者容器启动变量
     *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
     *
     *      3、获取IP
     *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
     */


}
三、修改yml配置文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxl:
  job:
    admin:
      # 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。
      # 执行器将会使用该地址进行"执行器心跳注册""任务结果回调";为空则关闭自动注册;
      addresses: http://127.0.0.1:8086/xxl-job-admin
    # 执行器通讯TOKEN [选填]:非空时启用;
    accessToken:
    executor:
      # 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
      appname: xxl-job-executor-mileage
      # 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
      #从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
      address:
      # 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;
      # 地址信息用于 "执行器注册""调度中心请求并触发任务"ip:
      # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
      port: 8088
      # 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
      logpath: /data/applogs/xxl-job/jobhandler
      # 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则,-1, 关闭自动清理功能;
      logretentiondays: 30
logging:
  config: classpath:logback.xml      
四、编写测试类
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component
public class MileageXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);


    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("mileageJobHandler")
    public void mileageJobHandler() throws Exception {
        XxlJobHelper.log("XXL-JOB, Hello World.");

        for (int i = 0; i < 5; i++) {
            XxlJobHelper.log("beat at:" + i);
            System.out.println("ok");
            TimeUnit.SECONDS.sleep(2);
        }
        // default success
    }
} 

项目目录如下

编写完成后,启动服务!(注意启动顺序,先启动xxl-job-admin模块,再启动您的springboot服务)

五、任务调度中心,配置服务

1.新增执行器

2.新增任务

3.执行任务

注:测试选择执行一次即可,如需项目保持运行,选择启动

4.查看运行结果

到此,XXL-JOB与SpringBoot的简单整合入门教程就完成了,感谢您的查阅!



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、RedisMongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
文章有帮助的话,在看,转发吧。谢谢支持哟 (*^__^*
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分布式任务调度平台XXL-JOB
任务调度是指基于给定的时间点,给定的时间间隔又或者给定执行次数自动的执行任务。我们可以思考一下在以下场景中,我们应该怎么实现:
我没有三颗心脏
2019/10/08
2.4K0
分布式任务调度平台XXL-JOB
分布式任务调度平台XXL-JOB,不了解一下?
任务调度是指基于给定的时间点,给定的时间间隔又或者给定执行次数自动的执行任务。我们可以思考一下在以下场景中,我们应该怎么实现:
Bug开发工程师
2019/12/05
1.3K0
手把手教你实现xxl-job分布式任务调度平台搭建
首先我们需要先下载 xxl-job 的源码,下载地址:github:https://github.com/xuxueli/xxl-job。我这里下载使用的是 2.1.2 版本,下载完成后解压,然后使用 IDEA 的Import Project 导入到 IDE 中,注意使用 Maven 方式导入。
用户1516716
2020/09/22
1.8K0
手把手教你实现xxl-job分布式任务调度平台搭建
Xxl-job分布式任务调度使用
2022.06.27—重新修正文章错误 这个文章写过一次,搬站时数据丢失了,也就没精力重写了,现在只是粗略写下
蚊子.
2023/08/10
5060
Xxl-job分布式任务调度使用
xxl-job分布式定时任务
参考:https://blog.csdn.net/huangjinjin520/article/details/106880276/
java后端指南
2021/11/11
5150
xxl-job分布式定时任务
Springboot项目引入xxl-job
配置xxl-job-admin服务中的数据库信息,端口等信息。我这里是将其打成docker镜像部署到服务端的。
晓果冻
2022/09/08
1.1K0
Springboot项目引入xxl-job
xxl-job 任务调度 项目的学习(框架使用步骤)
之后写任务,就是这个执行器项目里面有很多的任务,有的任务需要开启,有的需要关闭,那么每一个方法就是一个任务,那么每一个都需要单独的在这个管理平台进行注册
一写代码就开心
2022/06/14
5550
xxl-job 任务调度 项目的学习(框架使用步骤)
SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
品茗IT
2020/05/28
1.7K0
分布式任务调度平台XXL-JOB搭建教程
  关于分布式任务调度平台XXL-JOB,其实作者 许雪里 在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记录下来。
IT可乐
2019/05/29
2.4K0
分布式任务调度平台XXL-JOB搭建教程
分布式任务调度平台 → XXL-JOB 实战
  老师:谁知道鞭炮用英语怎么说?   甲:老师!老师!我知道,鞭炮的英文是pilipala。   老师:那闪电呢?   乙:kucha kucha   老师:那舞狮呢?   丙:dong dong qiang   老师:你们几个先歇会吧!太费嗓子了!   老师:下一个,谁知道墨家创始人墨子的英文怎么翻译?   丁:black baby   老师:那老子是不是叫old baby?好了最后一题!我们都知道有位大诗人叫陆游,请问他的英文名应该怎么翻译呢?   辛:wifi   同学们:啊哈哈哈哈!!!
青石路
2020/08/05
9370
分布式任务调度平台 → XXL-JOB 实战
五分钟体验分布式调度框架xxl-job
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
方志朋
2022/01/06
8310
五分钟体验分布式调度框架xxl-job
三千字带你搞懂XXL-JOB任务调度平台
所以定时任务在平时开发中并不少见,而且对于现在快速消费的时代,每天都需要发送各种推送,消息都需要依赖定时任务去完成,应用非常广泛。
java技术爱好者
2020/10/10
8.7K0
三千字带你搞懂XXL-JOB任务调度平台
部署使用XXL-JOB
关于一些特性就不做简单复杂的介绍,可以参考:https://www.xuxueli.com/xxl-job/#1.3%20%E7%89%B9%E6%80%A7
是小张啊喂
2022/08/18
1.1K0
springboot整合xxl-job 分布式任务调度
注意:调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例,如果mysql做主从,调度中心集群节点务必强制走主库
用户10125653
2022/11/10
1.3K0
springboot整合xxl-job 分布式任务调度
分布式调度XXL-JOB
在业务类中方法中贴上这个注解,然后在启动类上贴上@EnableScheduling注解
yuanshuai
2023/11/17
3790
分布式调度XXL-JOB
搭建分布式任务调度平台
3. 分布式任务调度中心会根据相应的路由策略选出其中的一个或者多个,然后再本地执行定时任务
envoke
2020/09/17
1.2K0
搭建分布式任务调度平台
spring boot项目整合xxl-job
关于分布式任务调度平台XXL-JOB,作者 许雪里 在其发布的中文教程中已经介绍的很清楚了,这里就不做过多的介绍了。按照文档搭建xxl-job,做此记录。
BUG弄潮儿
2020/06/29
4.2K0
xxl-job Vs ElasticJob,谁牛?
1. xxl-job 2. 运行 xxl-job 3. 开发定时任务 3.1 项目创建及配置 3.2 定时任务开发方式 4. 小结 前两天写了一篇文章介绍了一下 ElasticJob,有不少小伙伴强烈建议讲讲 xxl-job,其实 ElasticJob 本来就是一个引子,松哥本来就是想和大家分享 xxl-job 的(手动狗头。 1. xxl-job 松哥也在微信群里和小伙伴们讨论过各自到底用的是 xxl-job 还是 ElasticJob,讨论的结果就是,xxl-job 使用的人更多一些。 不说功能的优劣,
江南一点雨
2022/03/24
2.1K0
job 定时任务的五种创建方式 || xxl-job 定时任务调度中心「建议收藏」
Quartz表达式生成地址: http://cron.qqe2.com/ —-支持生成定时任务表达式和反解析,使用Quartz表达式的定时任务如下 1、xxl-job 2、springboot 的 @Scheduled 3、Quartz 框架
全栈程序员站长
2022/07/30
1.7K0
job 定时任务的五种创建方式 || xxl-job 定时任务调度中心「建议收藏」
【极光系列】springBoot集成xxl-job调度器
直接下载可用 https://gitee.com/shawsongyue/aurora.git
夏之以寒
2024/03/04
2370
【极光系列】springBoot集成xxl-job调度器
推荐阅读
相关推荐
分布式任务调度平台XXL-JOB
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验