SpringBoot 集成xxl-job

一、概述:

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

二、集成SpringBoot

  1. 引入MAVEN
 			<dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>${xxl-job-core.version}</version>
            </dependency>
  1. applicaiton.yaml 配置
xxl:
  job:
    admin:
      addresses: http://192.168.0.22:9080/lq-xxljob-client/
    accessToken:
    executor:
      port: 0
      appname: ${spring.application.name}
      corePoolSize: 5
      maxPoolSize: 20
      threadkeepAliveSeconds: 60
      logPath: logs/lq/job/jobhandler/
      logRetentionDays: 30
  1. XxlJobConfig 配置
package com.lq.common.config;

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
@Slf4j
public class XxlJobConfig {
    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
    @Value("${xxl.job.executor.appname}")
    private String appName;
    @Value("${xxl.job.accessToken}")
    private String accessToken;
    @Value("${xxl.job.executor.logPath}")
    private String logPath;
    @Value("${xxl.job.executor.logRetentionDays:30}")
    private int logRetentionDays;
//    @Value("${xxl.job.executor.ip}")
//    private String ip;
    @Value("${xxl.job.executor.port}")
    private int port;




    @Bean(initMethod = "start", destroyMethod = "destroy")
    public XxlJobSpringExecutor xxlJobExecutor() {
        log.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appName);
        //        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }
}

常见问题:

在使用XXL-JOB时,出现ERROR com.xxl.job.core.util.XxlJobRemotingUtil:143 - Read timed out错误通常表示在客户端与服务器端进行通信时,读操作超时。XXL-JOB是一个分布式任务调度平台,该错误可能由以下几个原因导致:
网络问题:XXL-JOB客户端与服务端之间的网络连接不稳定或延迟过高,导致在指定的超时时间内无法完成数据读取。
解决方案:检查并确保客户端与服务端之间的网络连通性良好,减少网络延迟和丢包率,必要时可适当增加通信超时时间。
服务端响应过慢:XXL-JOB服务端处理请求的速度太慢,未能在设置的Socket读取超时时间内返回结果。
解决方案:优化服务端性能,排查是否存在阻塞、资源耗尽等情况,确保服务端能够快速响应客户端请求。
配置不合理:XXL-JOB客户端或服务端的相关配置(如超时时间)设置得过小,不足以应对正常业务场景下的响应时间。
解决方案:调整相关超时配置参数,使其适应实际的业务需求和网络环境。
请根据实际情况,针对性地进行排查和解决。同时,关注XXL-JOB服务端日志以获取更详细的错误信息,这对于定位问题源头非常有帮助

解决方法:
yaml 里添加配置

 corePoolSize: 5
 maxPoolSize: 20
 threadkeepAliveSeconds: 60

相关推荐

  1. SpringBoot 集成xxl-job

    2024-03-10 13:06:09       24 阅读
  2. <span style='color:red;'>xxl</span>-<span style='color:red;'>job</span>

    xxl-job

    2024-03-10 13:06:09      16 阅读
  3. XXL-Job

    2024-03-10 13:06:09       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 13:06:09       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 13:06:09       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 13:06:09       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 13:06:09       18 阅读

热门阅读

  1. Xss防护

    2024-03-10 13:06:09       23 阅读
  2. c语言:日期强迫症

    2024-03-10 13:06:09       21 阅读
  3. MyBatis和MyBatis-Plus的差别和优缺点

    2024-03-10 13:06:09       23 阅读