RuoYi-Vue-Plus (XXL-JOB任务调度中心二:配置管理与定时任务编写、执行策略、命令行任务、邮件报警等等

一、后端xxl job的配置属性介绍

  • enabled : 是否开启执行器,如果为false,调度中心就调用不了后端定时任务
  • admin-addresses:调度中心的地址,多个则可以逗号拼接:  url1,url2,url3
  • access-token: 执行器通讯TOKEN ,必须和xxl-job代码里面的一致
    src/main/resources/application.yml 配置文件中 accessToken:
    
    --- # xxljob系统配置
    xxl:
      job:
        # 鉴权token
        accessToken: xxl-job
        # 国际化
        i18n: zh_CN
        # 日志清理
        logretentiondays: 30
        triggerpool:
          fast:
            max: 200
          slow:
            max: 100
    
  • appname: 执行器AppName, 配置完调度中心可以识别到

  • port: 执行器端口号,执行器名称可以一致appname: xxl-job-executor,但是如果多个执行器端口号必须区分开来
  •  address: 执行器注册地址,默认自动获取IP
  •   ip:  执行器IP:默认自动获取IP
  • logpath: 日志保存路径
  • logretentiondays: 日志保存天数

 通过配置可以知道,xxl-job 调度中心识别执行器的流程:

开启执行器后,执行器根据admin-addresses 地址和 xxl-job 注册到 调度中心,并绑定执行器名称端口日志等信息

--- # xxl-job 配置
xxl.job:
  # 执行器开关
  enabled: true
  #enabled: false
  # 调度中心地址:如调度中心集群部署存在多个地址则用逗号分隔。
  admin-addresses: http://localhost:9100/xxl-job-admin
  # 执行器通讯TOKEN:非空时启用
  access-token: xxl-job
  executor:
    # 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册
    appname: xxl-job-executor
    # 28080 端口 随着主应用端口飘逸 避免集群冲突
    port: 2${server.port}
    # 执行器注册:默认IP:PORT
    address:
    # 执行器IP:默认自动获取IP
    ip:
    # 执行器运行日志文件存储磁盘路径
    logpath: ./logs/xxl-job
    # 执行器日志文件保存天数:大于3生效
    logretentiondays: 30

测试:启动调度中心和后台,将后台注册到调度中心

启动xxx-job调度中心和 后台执行器,

则可以看到注册成功:

 二、任务管理

2.1 常用配置:

  1. 调度配置-调度类型:一般我们默认选择CRON表达式,可以参考文章:cron 定时任务_cron 每月最后一天-CSDN博客
  2. 任务配置-运行模式:默认BEAN模式,后面代码会演示 分片广播、命令行任务
  3. 任务配置-JobHandler:对应注解里面标注的名称 @XxlJob("demoJobHandler")
      /**
         * 1、简单任务示例(Bean模式)
         */
        @XxlJob("demoJobHandler")
        public void demoJobHandler() throws Exception {
            XxlJobHelper.log("XXL-JOB, Hello World.");
    
            for (int i = 0; i < 5; i++) {
                XxlJobHelper.log("beat at:" + i);
            }
            // default success
        }

  4.  高级配置-路由策略:

    第一个(First):总是选择注册列表中的第一个执行器执行。
    
    最后一个(Last):总是选择注册列表中的最后一个执行器执行。
    
    轮询(Round):按顺序轮流选择执行器执行,实现简单负载均衡。
    
    随机(Random):随机选择一个执行器执行,增加执行的不确定性。
    
    一致性HASH(Consistent Hash):通过Hash算法稳定地选择执行器,即使执行器数量变化也能保持任务分配的连续性。
    
    最少使用(Least Used)(LFU或类似概念):选择最近最少被使用的执行器,以平衡负载。
    
    最近未使用(Least Recently Used, LRU):选择最久未被使用的执行器执行。
    
    故障转移(Failover):当首选执行器不可用时,自动选择下一个可用的执行器。
    
    忙碌转移(Busyover):不仅考虑故障,还考虑执行器的忙碌状态,避免过载。
    
    分片广播(Sharding Broadcast):所有执行器都执行一次任务,但每个执行器可以处理不同的数据分片,适用于大数据量处理。

  5. 高级配置-阻塞处理策略:

    单机串行(默认):
    描述:任务按调度顺序一个接一个地执行,前一个执行完再执行下一个。
    特点:简单,但可能导致任务等待时间长。
    
    丢弃后续调度:
    描述:如果执行器正忙,新任务会被丢弃。
    特点:防止任务堆积,但可能会丢失任务。
    
    覆盖之前调度:
    描述:如果执行器正忙,会中断当前任务,立即执行新任务。
    特点:确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

syfjava

请博主喝杯蜜雪冰城

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

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

打赏作者

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

抵扣说明:

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

余额充值