Skip to the content.

[TOC]

XXL-JOB

参照文档:官方文档

介绍

​ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

架构图

特性

使用

项目地址:Gitee

调度中心

部署

单机部署
初始化数据

导入SQL:

/xxl-job/doc/db/tables_xxl_job.sql
Docker部署

拉取镜像:

docker pull xuxueli/xxl-job-admin

运行:

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=1234" -p 8080:8080 --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0
源码部署

Tips:见官方文档。

启动成功后,访问:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)

默认登录账号 “admin/123456”。

集群部署

调度中心支持集群部署,提升调度系统容灾和可用性。

调度中心集群部署时,几点要求和建议:

Tips:官方暂未提供集群部署示例。

总结

优点

即特性

缺点

执行器项目

开发

BEAN模式(类形式)

Bean模式任务,支持基于类的开发方式,每个任务对应一个Java类。

1开发一个继承自"com.xxl.job.core.handler.IJobHandler"的JobHandler类实现其中任务方法
2手动通过如下方式注入到执行器容器
​```
XxlJobExecutor.registJobHandler("demoJobHandler", new DemoJobHandler());
​```
BEAN模式(方法形式)

Bean模式任务,支持基于方法的开发方式,每个任务对应一个方法。

// 可参考Sample示例执行器中的 "com.xxl.job.executor.service.jobhandler.SampleXxlJob" ,如下:
@XxlJob(value="demoJobHandler", init = "initDemoJobHandler", destroy = "destroyDemoJobHandler")
public void demoJobHandler() throws Exception {
    XxlJobHelper.log("XXL-JOB, Hello World.");
}

public void initDemoJobHandler(){}

public void destroyDemoJobHandler(){}
GLUE模式

简单来说,就是在线编写代码、配置,实时发布。

Tips:见官方文档。

部署

单机部署

Tips:见官方文档。

集群部署

执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。

执行器集群部署时,几点要求和建议:

Tips:官方暂未提供集群部署示例。