XXL定时任务:通过具体案例xxljob本地化布置与测试(持续更新不同案例)

这篇具有很好参考价值的文章主要介绍了XXL定时任务:通过具体案例xxljob本地化布置与测试(持续更新不同案例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.git 拉取代码库到本地

2.回车,下载好后用Idea打开,从这个目录打开

​编辑3.初始化数据库

4.修改配置文件中数据库的配置信息,换成自己的

5.启动项目,右键运行此文件

6.项目成功启动后,访问网址,进入管理页面

7.逃不掉的 Hello World

8.XxlJob配置类,固定的直接用

9.测试任务类

10.启动当前项目,出现这种提示说明链接成功

11.添加执行器

 (1)调度中心选择,appname对应的是配置文件中的属性,选择自动注册,地址就不用手动填了

  (2).点击保存后,刷新页面,显示添加成功

12.添加任务,这里选择spring bean 方式,jobHandler 就是方法注册的bean名称,其他信息正常填写​编辑

13.执行测试,可以选择执行一次,则立即触发,或者选择启动,但是需要根据自己配制的cron表达式触发。控制台可以看到成功打印了信息

后续

2023.12.4-----更新一波带参数的定时任务操作方法

1.1在原有代码上的改动,多了一个job参数获取

1.2管理页面的改动,这两个位置在哪里改都可以,1这里的机器地址因为是勾选了自动注册的所以不用填写

1.3运行结果

2023.12.7---更新一波定时任务修改表字段

1.1注册任务,添加一个改动字段的job,简单的业务方法如下

1.2管理页面配置job执行器,调度类型这里因为只是手动执行一次,不选也无妨

1.3 运行结果,看到执行结果。再去检查下库

1.4 使用场景

官方文档:


早已听闻XxllJob定时任务的大名,今天自己到本地测试下

1.git 拉取代码库到本地

xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。http://gitee.com/xuxueli0323/xxl-jobxxl-job本地配置,Cloud,java

2.回车,下载好后用Idea打开,从这个目录打开

3.初始化数据库

执行数据库脚本,地址在包中这个位置

xxl-job本地配置,Cloud,java

xxl-job本地配置,Cloud,java

4.修改配置文件中数据库的配置信息,换成自己的

xxl-job本地配置,Cloud,java

5.启动项目,右键运行此文件

6.项目成功启动后,访问网址,进入管理页面

调度中心访问地址:http://localhost:8080/xxl-job-admin 

默认登录账号 “admin/123456”

7.逃不掉的 Hello World

核心配置:   

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

可以另外找个项目,进行测试,配置信息如下

  • 新建springboot项目步骤

xxl-job本地配置,Cloud,java

xxl.job.accessToken=default_token
xxl.job.admin.address=http://127.0.0.1:8080/xxl-job-admin
xxl.job.executor.address=
xxl.job.executor.appname=jpbhandel
xxl.job.executor.ip=#本机ip地址
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30
xxl.job.executor.port=9998

配置分析

  • xxl.job.accessToken:XXL-JOB 的访问令牌,用于鉴权验证,默认为 default_token。
  • xxl.job.admin.address:XXL-JOB Admin 的地址,即任务调度中心的访问地址,例如 http://172.19.6.66:8080/xxl-job-admin。(中间的ip为启动xxljob-admin项目的机器ip)
  • xxl.job.executor.address:执行器的地址,即当前执行器机器的 IP 地址+端口号,例如 192.168.166.6:9998。如果不填写则会自动获取当前执行器机器的 IP 地址和默认端口号。(也就是当前启动的个人项目机器ip)
  • xxl.job.executor.appname:执行器的应用名称,用于在任务调度中心进行区分,例如 jpbhandel。
  • xxl.job.executor.ip:执行器的 IP 地址,如果不填写则会自动获取当前执行器机器的 IP 地址。
  • xxl.job.executor.logpath:执行器的日志路径,指定执行器日志的存储路径,例如 /data/applogs/xxl-job/jobhandler。
  • xxl.job.executor.logretentiondays:执行器的日志保留天数,指定执行器日志的保留天数,超过指定天数的日志将被清理,默认为 30 天。
  • xxl.job.executor.port:执行器的端口号,指定执行器监听的端口号,默认为 9998。

xxl-job本地配置,Cloud,java

8.XxlJob配置类,固定的直接用

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import com.xxl.job.core.util.IpUtil;
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.address}")
    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(IpUtil.getIp());
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }
}

9.测试任务类

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component

public class AssetsTask {
    private static Logger logger = LoggerFactory.getLogger(AssetsTask.class);

    @XxlJob("testJobHandler")
    public void demoJobHandler() throws Exception{
        XxlJobHelper.log("XXL_JOB,run successfully.");
        System.out.println("XXL_JOB:Hello WOrld." + LocalDateTime.now());
    }

}

10.启动当前项目,出现这种提示说明链接成功

xxl-job本地配置,Cloud,java

11.添加执行器

 (1)调度中心选择,appname对应的是配置文件中的属性,选择自动注册,地址就不用手动填了

xxl-job本地配置,Cloud,java

xxl-job本地配置,Cloud,java

  (2).点击保存后,刷新页面,显示添加成功

12.添加任务,这里选择spring bean 方式,jobHandler 就是方法注册的bean名称,其他信息正常填写

xxl-job本地配置,Cloud,java

13.执行测试,可以选择执行一次,则立即触发,或者选择启动,但是需要根据自己配制的cron表达式触发。控制台可以看到成功打印了信息

xxl-job本地配置,Cloud,java

xxl-job本地配置,Cloud,java

基础操作就这些了,后面可以看官方文档再玩玩

后续

2023.12.4-----更新一波带参数的定时任务操作方法
1.1在原有代码上的改动,多了一个job参数获取

xxl-job本地配置,Cloud,java

1.2管理页面的改动,这两个位置在哪里改都可以,1这里的机器地址因为是勾选了自动注册的所以不用填写

xxl-job本地配置,Cloud,java

1.3运行结果

        可以看到成功接收到job参数并且打印

xxl-job本地配置,Cloud,java

2023.12.7---更新一波定时任务修改表字段
1.1注册任务,添加一个改动字段的job,简单的业务方法如下

xxl-job本地配置,Cloud,java

xxl-job本地配置,Cloud,java

1.2管理页面配置job执行器,调度类型这里因为只是手动执行一次,不选也无妨

xxl-job本地配置,Cloud,java

1.3 运行结果,看到执行结果。再去检查下库

xxl-job本地配置,Cloud,java

xxl-job本地配置,Cloud,java

1.4 使用场景

       因为系统下面分为多个项目,每个项目有单独的数据库,所有项目信息维护在主库main中,现在需求有改动,所有项目下的某个表要新增或删除字段,就可以通过该种途径实现,将项目库的信息全部查出来保存到集合中,循环遍历切换到每个项目库,执行ddl操作,为什么不直接在本地跑一下sql语句?因为本地是可以这样做的,但到了生产环境没权限额,只能抛出一个接口,然后查看任务的日志即可。

官方文档:

分布式任务调度平台XXL-JOB文章来源地址https://www.toymoban.com/news/detail-858572.html

到了这里,关于XXL定时任务:通过具体案例xxljob本地化布置与测试(持续更新不同案例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springcloud:快速上手定时任务框架xxl-job(十五)

    实际开发中,我们常常遇到需要定时执行的任务,我们可以利用定时线程池或schedule框架等来实现定时任务,但这些方式都有效率、性能上的缺陷,在微服务框架下,我们期望一种更加规整、轻量、可靠的定时任务框架来帮助我们实现定时任务,以及可视化的管理定时任务。

    2023年04月08日
    浏览(47)
  • 【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现完整流程

    在平时的业务场景中,经常有一些场景需要使用定时任务,比如: 时间驱动的场景:某个时间点发送优惠券,发送短信等等。 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。 固定频率的场景:每隔5分钟需要执行一次。 在Java中,传统的定时任务实现方案

    2024年02月14日
    浏览(37)
  • 第三代开源定时任务框架PowerJob-比xxl-job 更强大!

    这倒是勾起了我的好奇心,因为前段时间用  xxl-job 替换掉了同样不太好用的 QuartZ ,那时候还没有调研 PowerJob。于是这次研究了一番, 发现 PowerJob 确实是个很棒的框架 ,在这里推荐给大家。 PowerJob是新一代分布式任务调度与计算框架,支持CRON、API、固定频率、固定延迟等

    2023年04月10日
    浏览(38)
  • 【手把手】分布式定时任务调度解析之xxl-job

    在之前我写的讲解Quartz中有介绍过,Quartz有差不多二十年的历史,调度模型已经非常成熟了,而且很容易集成到Spring中去,用来执行业务任务是一个很好的选择。但是越早的设计存在的问题也越明显,比如: 1、调度逻辑(Scheduler)和任务类耦合在同一个项目中,随着调度任

    2024年01月19日
    浏览(64)
  • 分布式定时任务系列8:XXL-job源码分析之远程调用

    分布式定时任务系列1:XXL-job安装 分布式定时任务系列2:XXL-job使用 分布式定时任务系列3:任务执行引擎设计 分布式定时任务系列4:任务执行引擎设计续 分布式定时任务系列5:XXL-job中blockingQueue的应用 分布式定时任务系列6:XXL-job触发日志过大引发的CPU告警 分布式定时任

    2024年01月21日
    浏览(51)
  • 定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

    专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏: Python 专栏: Redis 专栏: TensorFlow 专栏: Logback 专栏: 量子计算: 量子计算 | 解密著名量子算法Shor算法和Grover算法 AI机器学习实战: AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析 AI机器学习 | 基于lib

    2024年02月05日
    浏览(56)
  • Spring@Scheduled定时任务接入XXL-JOB的一种方案(基于SC Gateway)

    目前在职的公司,维护着Spring Cloud分布式微服务项目有25+个。其中有10个左右微服务都写有定时任务逻辑,采用Spring @Scheduled这种方式。 Spring @Scheduled定时任务的缺点: 不支持集群:为避免重复执行,需引入分布式锁 死板不灵活:不支持手动执行,单次执行,补偿执行,修改

    2024年02月11日
    浏览(47)
  • Vue成绩案例实现添加、删除、显示无数据、添加日期、总分均分以及数据本地化等功能

    ✅✅✅通过本次案例实现 添加、删除、显示无数据、添加日期、总分均分以及数据本地化等功能。 准备成绩案例模板,我们需要在这些模板上面进行功能操作。 🍻🍻🍻 添加添加思路: ①、获取科目 和 分数 ②、给添加按钮注册点击事件 ③、给list数组添加一个对象 ④、

    2024年02月16日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包