xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)

GPL-3.0 License

Stars
27.4K
Committers
84

Bot releases are hidden (Show)

xxl-job - XXL-JOB v1.6.2,分布式任务调度平台

Published by xuxueli over 7 years ago

  • 1、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 2、JobHandler支持设置任务返回值,在任务逻辑中可以方便的控制任务执行结果;
  • 3、资源路径包含空格或中文时资源文件无法加载时,无法准确查看异常信息的问题处理。
  • 4、路由策越优化:循环和LFU路由策略计数器自增无上限问题和首次路由压力集中在首台机器的问题修复;
xxl-job - XXL-JOB v1.6.1,分布式任务调度平台

Published by xuxueli over 7 years ago

1、Rolling日志;
2、WebIDE交互重构;
3、通讯增强校验,有效过滤非正常请求;
4、权限增强校验,采用动态登录TOKEN(推荐接入内部SSO);
5、数据库配置优化,解决乱码问题;

xxl-job - XXL-JOB v1.6.0,分布式任务调度平台

Published by xuxueli over 7 years ago

  • 1、通讯方案升级,原基于HEX的通讯模型调整为基于HTTP的B-RPC的通讯模型;
  • 2、执行器支持手动设置执行地址列表,提供开关切换使用注册地址还是手动设置的地址;
  • 3、执行器路由规则:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移;
  • 4、规范线程模型统一,统一线程销毁方案(通过listener或stop方法,容器销毁时销毁线程;Daemon方式有时不太理想);
  • 5、规范系统配置数据,通过配置文件统一管理;
  • 6、CleanCode,清理无效的历史参数;
  • 7、底层扩展数据结构以及相关表结构调整;
  • 8、新建任务默认为非运行状态;
  • 9、GLUE模式任务实例更新逻辑优化,原根据超时时间更新改为根据版本号更新,源码变动版本号加一;
xxl-job - XXL-JOB v1.5.2,分布式任务调度平台

Published by xuxueli over 7 years ago

1、IP工具类获取IP逻辑优化,IP静态缓存;
2、执行器、调度中心,均支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况;
3、任务跨天执行时生成多份日志文件的问题修复;
4、底层日志底层日志调整,非敏感日志level调整为debug;
5、升级数据库连接池c3p0版本;
6、执行器log4j配置优化,去除无效属性;
7、底层代码重构和逻辑优化以及CleanCode;
8、GLUE依赖注入逻辑优化,支持别名注入;

xxl-job - XXL-JOB v1.5.1,分布式任务调度平台

Published by xuxueli almost 8 years ago

1、底层代码重构和逻辑优化,POM清理以及CleanCode;
2、Servlet/JSP Spec设定为3.0/2.2
3、Spring升级至3.2.17.RELEASE版本;
4、Jetty升级版本至8.2.0.v20160908;
5、已推送V1.5.0和V1.5.1至Maven中央仓库;

xxl-job - XXL-JOB v1.5.0,分布式任务调度平台

Published by xuxueli almost 8 years ago

版本 V1.5.0 特性

1、任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。
2、"执行器" 新增参数 "AppName" : 是每个执行器集群的唯一标示AppName, 并周期性以AppName为对象进行自动注册。
3、调度中心新增栏目 "执行器管理" : 管理在线的执行器, 通过属性AppName自动发现注册的执行器。只有被管理的执行器才允许被使用;
4、"任务组"属性改为"执行器": 每个任务需要绑定指定的执行器, 调度地址通过绑定的执行器获取;
5、抛弃"任务机器"属性: 通过任务绑定的执行器, 自动发现注册的远程执行器地址并触发调度请求。
6、"公共依赖"中新增DBGlueLoader,基于原生jdbc实现GLUE源码的加载器,减少第三方依赖(mybatis,spring-orm等);精简和优化执行器测配置(针对GLUE任务),降低上手难度;
7、表结构调整,底层重构优化;
8、"调度中心"自动注册和发现,failover: 调度中心周期性自动注册, 任务回调时可以感知在线的所有调度中心地址, 通过failover的方式进行任务回调,避免回调单点风险。

xxl-job - XXL-JOB v1.4.2,分布式任务调度平台

Published by xuxueli about 8 years ago

1、推送新版本 V1.4.2 至中央仓库, 大版本 V1.4 进入维护阶段;
2、任务新增时,任务列表偏移问题修复;
3、修复一处因bootstrap不支持模态框重叠而导致的样式错乱的问题, 在任务编辑时会出现该问题;
4、调度超时和Handler匹配不到时,调度状态优化;
5、因catch异常,导致任务不可终止的问题,给出解决方案, 见文档;

xxl-job - 分布式任务调度平台XXL-JOB

Published by xuxueli about 8 years ago

  • 1、任务依赖: 通过事件触发方式实现, 任务执行成功并回调时会主动触发一次子任务的调度, 多个子任务用逗号分隔;
  • 2、执行器底层实现代码进行重度重构, 优化底层建表脚本;
  • 3、执行器中任务线程分组逻辑优化: 之前根据执行器JobHandler进行线程分组,当多个任务复用Jobhanlder会导致相互阻塞。现改为根据调度中心任务进行任务线程分组,任务与任务执行相互隔离;
  • 4、执行器调度通讯方案优化, 通过Hex + HC实现建议RPC通讯协议, 优化了通讯参数的维护和解析流程;
  • 5、调度中心, 新建/编辑任务, 界面属性调整:
    • 5.1、任务新增/编辑界面中去除 "任务名JobName"属性 ,该属性改为系统自动生成: 该字段之前主要用于在 "调度中心" 唯一标示一个任务, 现实意义不大, 因此计划淡化掉该字段,改为系统生成UUID,从而简化任务新建的操作;
    • 5.2、任务新增/编辑界面中去除 "GLUE模式" 复选框位置调整, 改为贴近"JobHandler"输入框右侧;
    • 5.3、任务新增/编辑界面中去除 "报警阈值" 属性;
    • 5.4、任务新增/编辑界面中去除 "子任务Key" 属性, 每个任务全局任务Key可以从任务列表获取, 当本任务执行结束且成功后, 将会根据子任务Key匹配子任务并主动触发一次子任务执行;
  • 6、问题修复:
    • 6.1、执行器jetty关闭优化,解决一处可能导致jetty无法关闭的问题;
    • 6.2、执行器任务终止时,执行队列回调优化,解决一处导致任务无法回调的问题;
    • 6.3、调度中心中列表分页参数优化,解决一处因服务器限制post长度而引起的问题;
    • 6.4、执行器Jobhandler注解优化,解决一处因事务代理导致的容器无法加载JobHandler的问题;
    • 6.5、远程调度优化,禁用retry策略,解决一处可能导致重复调用的问题;

Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段, 地址见分支 V1.3 。新特性将会在master分支持续更新。

xxl-job - 分布式任务调度平台xxl-job

Published by xuxueli over 8 years ago

1、调度逻辑进行事务包裹;
2、执行器异步回调执行日志;
3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;

xxl-job - 任务调度框架xxl-job

Published by xuxueli over 8 years ago

1、更新项目目录结构:
/xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
/xxl-job-core ----------------------- 公共依赖
/xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
/db ---------------------------------- 建表脚本
/doc --------------------------------- 用户手册

2、在新的目录结构上,升级了用户手册;
3、优化了一些交互和UI;

xxl-job - 任务调度框架xxl-job

Published by xuxueli over 8 years ago

1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHander统称为“执行器”;
2、遗弃“servlet”方式底层系统通讯,推荐使用JETTY方式,重构通讯逻辑;
3、UI交互优化:左侧菜单展开状态优化,菜单项选中状态优化,任务列表打开表格有压缩优化;
4、【重要】“执行器”细分为:BEAN、GLUE两种开发模式,简介见下文:

“执行器” 模式简介:
    BEAN模式执行器:每个执行器都是Spring的一个Bean实例,XXL-JOB通过注解@JobHander识别和调度执行器;
    GLUE模式执行器:每个执行器对应一段代码,在线Web编辑和维护,动态编译生效,执行器负责加载GLUE代码和执行;
xxl-job - 任务调度框架xxl-job

Published by xuxueli almost 9 years ago

新版本 V1.2.x,新特性
1、支持任务分组;
2、支持“本地任务”、“远程任务”;
3、支持“任务日志”;
4、支持“串行执行”,并行执行;

说明:V1.2版本将系统架构按功能拆分为:
调度模块[xxl-job-admin]:负责管理调度信息,按照调度配置发出调度请求;
任务模块[xxl-job-client-demo]:负责接收调度请求并执行任务逻辑;任务模块可以方便的嵌入web项目,可以参考此demo;
通讯模块[xxl-job-client]:负责调度模块和任务模块之间的信息通讯;
优点:
解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
高扩展性;
稳定性;

xxl-job - 任务调度框架xxl-job

Published by xuxueli almost 9 years ago

任务调度框架xxl-job

Package Rankings
Top 3.57% on Proxy.golang.org
Top 1.19% on Repo1.maven.org
Related Projects