本文概览:分为调度中心部署和执行器服务部署两个模块。

选用xxl-job版本::v2.1.0

1 调度平台部署

1.1单机部署

1、下载代码

2、导入sql

在mysql终端通过source命令导入sql。

3、修改xxl-job-admin的 application.properties的数据库地址

4、xxxl-job-admin更改logback.xml,修改下日志目录

5、启动

http://localhost:8080/xxl-job-admin ,默认账号  admin/123456。任务调度系统视图如下:

42198461

6、一个可运行demo

链接: http://https//pan.baidu.com/s/1fJyRa1OXZA72drzvhpzkJQ   提取码: b2dy

1.2 集群部署

建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。

注意:

  • DB配置保持一致;
  • 登陆账号配置保持一致;
  • 集群机器时钟保持一致(单机集群忽视);

问题:

(1)如果搭建了一个调度中心集群,此时对于一个每日05点执行的任务,那么是通过集群的那个机器进行调度呢?

2 调度平台配置

新增一个任务时属性如下:

43889086

配置属性如下:

注意:

  • 执行器。表示一个执行器服务的名字。需要在“用户管理的”tab页添加这个服务信息

2.1 运行模式

执行器分类:Bean模式和GLUE 模式(GLUE、python、shell)两大类。

1、Glue模式

这种模式就是在调度平台写代码或者执行脚本,但是glue模式也需要有执行器服务,执行器服务此时可以理解为客户端,在客户端执行shell脚本,在执行完脚本之后和调度平台进行通信。如shell模式

49854679

添加运行脚本

49960176

2、Bean模式。

Bean模式就是搭建spring boot的执行器服务,通过开发JobHandler来实现

2.2 任务相关操作

1、上下线任务

通过“启动”和“停止”实现任务上下线。“执行一次”只是仅仅运行一次。

69080419

3 部署执行器

3.1 快速启动一个服务

在调度中心 https://github.com/xuxueli/xxl-job.git 代码中有一个demo。

40117733

只需要更改logback.xml,修改下日志目录,启动服务就可以。

我们将源码中spring boot中demo单独独立了一个spring boot服务.链接:    https://pan.baidu.com/s/11YossYKOLDoRZz4ZvZ7IIQ 提取码: fsew 。

3.2 集群部署

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

执行器回调地址(xxl.job.admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。

同一个执行器集群内AppName(xxl.job.executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。

4 执行器服务属性介绍

举例

1、日志管理

日志路径是用来给调度平台展示日志的,这些日志内容,通过封装的XlJobLogger来打印日志

5 问题

1java.lang.NoSuchMethodError: io.netty.util.internal.PlatformDependent.allocateUninitializedArray(I)

参考:https://blog.csdn.net/u014209205/article/details/93970438

对于版本冲突问题,参考

Maven依赖版本冲突

参考资料:

1、官网文档:http://www.xuxueli.com/xxl-job/#/?id=%e3%80%8a%e5%88%86%e5%b8%83%e5%bc%8f%e4%bb%bb%e5%8a%a1%e8%b0%83%e5%ba%a6%e5%b9%b3%e5%8f%b0xxl-job%e3%80%8b

2、Github地址:https://github.com/xuxueli/xxl-job

分类&标签