定时任务--xxlj-ob

xxl-job

随着定时任务的数量和耗时增加,发现quartz对项目本身有较大的性能影响,虽然定时任务触发时间一般为晚上,但是对于有先后顺序和数据量大的处理极有可能影响用户体验,所以在寻找开源替代品中发现了xxl-job,它配置简单使用方便很适合中小型公司。
官网: https://gitee.com/shring/xxl-job/
xxl-job也需要自己的数据库表并,使用的是mysql

依赖

<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>1.6.1</version>
</dependency>

在官方代码中需要注意三个文件即可

配置类XxxlJobConfig直接复制即可
SampleXxlJob:XxlJob开发示例(Bean模式)里面有很多实例方案,我本次使用的是分片方案

/**
     * 2、分片广播任务
     */
    @XxlJob("shardingJobHandler")
    public void shardingJobHandler() throws Exception {

        // 分片参数
        int shardIndex = XxlJobHelper.getShardIndex();
        int shardTotal = XxlJobHelper.getShardTotal();

        XxlJobHelper.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardIndex, shardTotal);

        // 业务逻辑
        for (int i = 0; i < 20; i++) {
            if (i % shardTotal == shardIndex) {
                XxlJobHelper.log("第 {} 片, 命中分片开始处理", i);
            } else {
                XxlJobHelper.log("第 {} 片, 忽略", i);
            }
        }

    }

@XxlJob("")注解是xxl-job的核心,只要配置这个就可以将这个方法交给它管理
自己使用只需要复制方法,给job命名,根据自己的分片策略调用业务逻辑即可

applicationl配置

xxl:
  job:
    admin:
#xxl-job的地址,如果有多个地址,用逗号分隔开
      addresses: http://127.0.0.1:8083/xxl-job-admin
    accessToken:
    executor:
# xxl-job执行器的名字
      appname: plan-exec
      address:
#执行器ip,选填,为空会自动获取ip
      ip:
#执行器端口号,选填,为空默认为9999
      port: 9993
#执行器日志保存天数,选填,值大于3时生效
      logretentiondays: 30
#执行器运行日志文件存储磁盘路径,选填,为空使用默认路径
      logpath: xxl-job

本文作者:萌新来报道

本文链接:https://www.cnblogs.com/liu-lin/p/16241339.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   萌新来报道  阅读(281)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
-- 养成问题记录好习惯,网上资料多而杂,自己整理记录下,努力整理正确结论,大部分为实际开发遇到的问题
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.