xxl-job任务调度中心

1、环境搭建,下载源码

2、创建mysql数据库xxl-job,并导入xxl-job\doc\db\tables_xxl_job.sql

3、修改xxl-job-admin中配置文件 application.properties

国际化   xxl.job.i18n=en  ,默认为空中文

4、导入idea,直接springboot启动

xxl-job-admin项目下XxlJobAdminApplication类即可

5、http://localhost:8080/xxl-job-admin即可访问

    账号密码在  application.properties中

xxl.job.login.username=admin
xxl.job.login.password=123456

 6、xxl-job打包

JRE_home是jdk路径

7、打包后启动java -jar xxl-job-admin-2.1.0-SNAPSHOT.jar

--------------------------------------------------------------------------------

8、项目中引入定时需要配置

xxl.job.executor.appname=

xxl.job.executor.port=

每个项目的配置不能一样,xxl.job.executor.appname必须和执行器name一样,端口则只需多个不重复即可

9、用户管理,默认管理员   admin/123456,可以修改其密码

    可以创建用户并分配权限 

10、需要初始化参数

package com.djbxlife.common;

import com.djbxlife.common.dao.DateBaseVOMapper;
import com.djbxlife.common.domain.GetByGroupCodeVOs;
import com.djbxlife.insure.enums.XxlJobParam;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Configuration
@ComponentScan(basePackages = "com.djbxlife.job")
public class XxlJobConfig {
    
    @Autowired
    DateBaseVOMapper dateBaseVOMapper;
    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {

        String adminAddresses =  null;
        String appName = null;
        String ip =  null;
        Integer port=null;

        String accessToken = null;
        String logpath = null;

        Integer logRetentionDays=null;
        List<GetByGroupCodeVOs> list  =dateBaseVOMapper.selectByParentIds("XxlJobParam");
        if(null != list && list.size()>0){
            for(GetByGroupCodeVOs dateBaseVO:list){

                //调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
                if(XxlJobParam.ADDRESS.getCode().equals(dateBaseVO.getCode())){
                    adminAddresses =dateBaseVO.getName();
                }

                //执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
                if(XxlJobParam.APPANME.getCode().equals(dateBaseVO.getCode())){
                    appName =dateBaseVO.getName();
                }

                //执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
                if(XxlJobParam.IP.getCode().equals(dateBaseVO.getCode())){
                    ip =dateBaseVO.getName();
                }

                //执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
                if(XxlJobParam.PORT.getCode().equals(dateBaseVO.getCode())){
                    String portStr= dateBaseVO.getName();;
                    if(!StringUtils.isEmptry(portStr)){
                        port =  Integer.parseInt(portStr);
                    }

                }
                //执行器通讯TOKEN [选填]:非空时启用;
                if(XxlJobParam.ACCESSTOKEN.getCode().equals(dateBaseVO.getCode())){
                    accessToken =dateBaseVO.getName();
                }

                //执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
                if(XxlJobParam.LOGPATH.getCode().equals(dateBaseVO.getCode())){
                    logpath =dateBaseVO.getName();
                }

                //执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理
                if(XxlJobParam.LOGRETEBTUIONDAYS.getCode().equals(dateBaseVO.getCode())){
                    String logRetentionDaysStr =dateBaseVO.getName();
                    if(!StringUtils.isEmptry(logRetentionDaysStr)){
                        logRetentionDays =  Integer.parseInt(logRetentionDaysStr);
                    }
                }
            }
        }

        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;
    }
}

11、用过注解,这种注入是起作用的

12、总结

启动admin服务后,只需要在定时服务引入core,即可

### 如何配置 XXL-JOB 任务调度中心 #### 数据库初始化 SQL 脚本的位置 数据库初始化 SQL 脚本位于 `/xxl-job-master/doc/db/tables_xxl_job.sql` 文件中[^1]。 #### 修改数据库连接设置 为了使调度中心能够正确连接到 MySQL 数据库,在 `application.properties` 或者 `application.yml` 中需指定如下属性: 对于 `.properties` 文件: ```properties spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 对于 `.yml` 文件,则应按照 YAML 的语法结构来定义这些参数。以上配置指定了数据源 URL、用户名、密码以及驱动程序名称,确保了应用程序可以顺利访问 MySQL 数据库中的 `xxl_job` 表格。 #### 启动项目 完成上述配置之后,可以通过 IDE 或命令行工具启动 xxl-job-admin 项目。当应用运行起来后,默认情况下可以在浏览器里通过 http://localhost:8080/xxl-job-admin 访问调度中心界面;如果是在远程服务器上部署的话,则应该替换为实际的公网 IP 地址加上相应的端口号,比如 http://{阿里云服务器地址}:8088/xxl-job-admin[^2]。 #### 添加 Maven 依赖和执行器组件配置 为了让本地的服务支持 XXL-JOB 的功能,还需要引入特定的 Maven 依赖并创建对应的 Java 类来进行必要的配置。具体来说就是在项目的 POM 文件里面加入下面这段 XML 片段以获取最新的稳定版核心库: ```xml <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>${最新稳定版本}</version> </dependency> ``` 接着,在合适的地方编写一个名为 `XxlJobConfig.java` 的类用于加载执行器的相关配置信息,其路径可能是类似于这样的:`/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿365

祝你好运,谢谢

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

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

打赏作者

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

抵扣说明:

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

余额充值