侧边栏壁纸
博主头像
鱼箴日记,AI,Java,Liunx,Spring,Spring AI博主等级

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

XXL-JOB 快速入门!

Administrator
2024-06-28 / 0 评论 / 0 点赞 / 47 阅读 / 4843 字 / 正在检测是否收录...

XXL-JOB 是一个分布式任务调度平台,用于处理分布式系统中的定时任务调度和执行。它由开源社区开发,旨在提供高效、稳定、可扩展的任务调度解决方案。XXL-JOB 支持多种任务调度策略,具备任务执行结果实时监控、任务日志管理、调度中心高可用等特性,广泛应用于互联网和企业信息系统中。

XXL-JOB 的主要功能

  1. 任务调度:支持多种调度策略,如固定频率、CRON 表达式、自定义调度策略等。

  2. 任务管理:提供任务的增删改查功能,支持任务的启用、禁用和删除操作。

  3. 执行器管理:管理任务执行器,实现任务的负载均衡和故障转移。

  4. 日志管理:记录任务执行的详细日志,方便问题排查和分析。

  5. 调度监控:实时监控任务的调度和执行状态,提供丰富的统计信息。

  6. 高可用:支持调度中心的集群部署,提高系统的可用性和稳定性。

  7. 动态扩展:支持动态增加和移除任务执行器,实现任务调度的弹性伸缩。

XXL-JOB 的架构

XXL-JOB 主要由调度中心(Admin)和执行器(Executor)两部分组成:

  1. 调度中心(Admin)

    • 提供任务调度和管理的用户界面。

    • 负责任务的调度和分发,将任务指派给相应的执行器。

    • 支持集群部署,保证高可用性。

  2. 执行器(Executor)

    • 实际执行任务的节点,可以是独立的服务,也可以嵌入到业务系统中。

    • 执行器注册到调度中心,接受调度中心分配的任务。

    • 执行任务后,将执行结果和日志返回给调度中心。

安装和使用 XXL-JOB

安装调度中心(Admin)

  1. 下载 XXL-JOB: 可以从 GitHub 仓库下载 XXL-JOB 的源码或预编译包,地址是 https://github.com/xuxueli/xxl-job

  2. 配置数据库: 创建数据库并导入 xxl-job 提供的数据库脚本,初始化调度中心所需的表。

  3. 修改配置文件: 修改 application.properties 文件,配置数据库连接信息和调度中心的相关参数。

  4. 启动调度中心: 使用 java -jar 命令启动 XXL-JOB Admin:

    java -jar xxl-job-admin-2.3.0.jar
  5. 访问调度中心: 启动成功后,打开浏览器访问 http://localhost:8080/xxl-job-admin,默认账号密码是 admin/admin123

配置和运行执行器(Executor)

  1. 引入依赖: 在你的项目中引入 XXL-JOB 执行器的依赖(以 Maven 为例):

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

    配置执行器: 在 application.properties 文件中配置执行器的相关参数,如执行器名称、调度中心地址等。

  2. 编写任务: 编写任务类并实现 IJobHandler 接口,定义任务的执行逻辑。例如:

    @Component
    public class MyJobHandler extends IJobHandler {
        @Override
        public ReturnT<String> execute(String param) throws Exception {
            // 任务执行逻辑
            System.out.println("Executing task with param: " + param);
            return ReturnT.SUCCESS;
        }
    }
  3. 启动执行器: 启动包含执行器的应用,执行器会自动注册到调度中心。

  4. 配置任务: 在调度中心的管理界面上配置任务,指定任务的执行器、调度策略等。

示例配置

调度中心(Admin)的 application.properties 示例

server.port=8080

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

# 调度中心配置
xxl.job.admin.login.username=admin
xxl.job.admin.login.password=admin123
xxl.job.accessToken=

执行器(Executor)的 application.properties 示例

server.port=8081

# 调度中心地址
xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin

# 执行器配置
xxl.job.executor.appname=my-job-executor
xxl.job.executor.ip=
xxl.job.executor.port=9999
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30

参考文档和社区

  • 官方文档:XXL-JOB 官方文档

  • GitHub 项目地址:XXL-JOB GitHub

  • 交流社区:可以在 GitHub Issues 或其他社区平台上参与讨论和提问。

通过 XXL-JOB,可以轻松实现分布式系统中的任务调度和管理,提升系统的可维护性和扩展性。

0

评论区