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 v2.4.1,分布式任务调度平台 Latest Release

Published by xuxueli 6 months ago

  • 1、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、springboot、mybatis等;
  • 2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
  • 3、【修复】"CVE-2024-29025" netty低版本漏洞修复。
  • 4、【修复】"CVE-2024-3366" freemarker模板注入漏洞修复。
  • 5、【修复】"CVE-2022-43183" 越权漏洞修复。
  • 6、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
  • 7、【优化】执行器注册节点显示优化,解决注册节点过多时无法展示问题。
xxl-job - XXL-JOB v2.4.0,分布式任务调度平台

Published by xuxueli over 1 year ago

  • 1、【优化】执行器任务Bean扫描逻辑优化:解决懒加载注解失效问题。
  • 2、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、spring、springboot、mybatis等;
  • 3、【修复】"CVE-2022-36157" 授权漏洞修复。
  • 4、【修复】"CVE-2022-43183" SSRF漏洞修复。
xxl-job - XXL-JOB v2.3.1,分布式任务调度平台

Published by xuxueli over 2 years ago

  • 1、【修复】修复风险漏洞,升级问题低版本项目依赖:CVE-2021-2471、CVE-2022-22965等。
  • 2、【修复】修复故障告警逻辑,邮箱校验逻辑下放至EmailJobAlarm中,避免对其他告警方式的干扰。
  • 3、【优化】调度通讯默认启用accessToken,提升系统安全性(建议生产环境自定义accessToken)。
  • 4、【优化】合并多项PR,项目代码结构、健壮性优化:PR-2833、PR-2812、PR-2541、PR-2537、PR-2514、PR-2509、PR-2591。
  • 5、【优化】任务线程名优化,提升可读性与问题定位效率(ISSUE-2527)。
xxl-job - XXL-JOB v2.3.0,分布式任务调度平台

Published by xuxueli over 3 years ago

Release Notes

  • 1、【新增】调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略、立即补偿触发一次等;
  • 2、【新增】触发策略:除了常规Cron、API、父子任务触发方式外,新增提供 "固定间隔触发、(固定延时触发,实验中)" 新触发方式;
  • 3、【新增】新增任务辅助工具 "XxlJobHelper":提供统一任务辅助能力,包括:任务上下文信息维护获取(任务参数、任务ID、分片参数)、日志输出、任务结果设置……等;
    • 3.1、"ShardingUtil" 组件废弃:改用 "XxlJobHelper.getShardIndex()/getShardTotal();" 获取分片参数;
    • 3.2、"XxlJobLogger" 组件废弃:改用 "XxlJobHelper.log" 进行日志输出;
  • 4、【优化】任务核心类 "IJobHandler" 的 "execute" 方法取消出入参设计。改为通过 "XxlJobHelper.getJobParam" 获取任务参数并替代方法入参,通过 "XxlJobHelper.handleSuccess/handleFail" 设置任务结果并替代方法出参,示例代码如下;
@XxlJob("demoJobHandler")
public void execute() {
  String param = XxlJobHelper.getJobParam();    // 获取参数
  XxlJobHelper.handleSuccess();                 // 设置任务结果
}
  • 5、【优化】Cron编辑器增强:Cron编辑器修改cron时可实时查看最近运行时间;
  • 6、【优化】执行器示例项目规范整理;
  • 7、【优化】任务调度生命周期重构:调度(schedule)、触发(trigger)、执行(handle)、回调(callback)、结束(complete);
  • 8、【优化】执行器注册组件优化:注册逻辑调整为异步方式,提高注册性能;
  • 9、【优化】执行器鉴权校验:执行器启动时主动校验accessToken,为空则主动Warn告警;(已规划安全强化:AccessToken动态生成、动态启停等)
  • 10、【优化】邮箱告警配置优化:将"spring.mail.from"与"spring.mail.username"属性拆分开,更加灵活的支持一些无密码邮箱服务;
  • 11、【优化】多个项目依赖升级至较新稳定版本,如netty、groovy、spring、springboot、mybatis等;
  • 12、【优化】UI组件常规升级,提升组件稳定性;
  • 13、【优化】调度中心页面交互优化:用户管理模块密码列取消;多处表达autocomplete取消;执行器管理模块XSS拦截校验等;
  • 14、【优化】调度中心任务状态探测慢SQL问题优化;
  • 15、【修复】GLUE-Java模式任务,init/destroy无法执行问题修复;
  • 16、【修复】Cron编辑器问题修复:修复小概率情况下cron单个字段修改时导致其他字段被重置问题;
  • 17、【修复】通用HTTP任务Handler(httpJobHandler)优化:修复 "setDoOutput(true)" 导致任务请求GetMethod失效问题;
  • 18、【修复】执行器Commandhandler示例任务优化,修复极端情况下脚本进程挂起问题;
  • 19、【修复】调度通讯组件优化,修复RestFul方式调用 DotNet 版本执行器时心跳检测失败问题;
  • 20、【修复】调度中心远程执行日志查询乱码问题修复;
  • 21、【修复】调度中心组件加载顺序优化,修复极端情况下调度组件初始慢导致的调度失败问题;
  • 22、【修复】执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;
  • 23、【修复】调度线程连接池优化,修复连接有效性校验超时问题;
  • 24、【修复】执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题;
  • 25、【修复】轮训路由策略优化,修复小概率下并发问题;
  • 26、【修复】页面redirect跳转后https变为http问题修复;
  • 27、【修复】执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题;
xxl-job - XXL-JOB v2.2.0,分布式任务调度平台

Published by xuxueli over 4 years ago

Release Notes

  • 1、RESTful API:调度中心与执行器提供语言无关的 RESTful API 服务,第三方任意语言可据此对接调度中心或者实现执行器。
  • 2、任务复制功能:点击复制是弹出新建任务弹框,并初始化被复制任务信息;
  • 3、任务手动执行一次的时候,支持指定本次执行的机器地址,为空则从执行器获取;
  • 4、任务结果丢失处理:调度记录停留在 "运行中" 状态超过10min,且对应执行器心跳注册失败不在线,则将本地调度主动标记失败;
  • 5、调度中心升级springboot2.x;因此,系统要求JDK8+;
  • 6、XxlJob注解扫描方式优化,支持查找父类以及接口和基于类代理等常见情况;修复任务为空时小概率NPE问题;
  • 7、移除旧类注解JobHandler,推荐使用基于方法注解 "@XxlJob" 的方式进行任务开发;(如需保留类注解JobHandler使用方式,可以参考旧版逻辑定制开发);
  • 8、任务告警组件模块化:如果需要新增一种告警方式,只需要新增一个实现 "com.xxl.job.admin.core.alarm.JobAlarm" 接口的告警实现即可,更加灵活、方便定制;
  • 9、调度中心国际化完善:新增 "中文繁体" 支持。默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
  • 10、执行器注册逻辑优化:新增配置项 ”注册地址 / xxl.job.executor.address“,优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
  • 11、默认数据库连接池调整为hikari,移除tomcat-jdbc依赖;
  • 12、多个项目依赖升级至较新稳定版本,如mybatis、groovy和mysql驱动等;
  • 13、执行器优雅停机优化,修复任务线程中断未join导致回调丢失的问题;
  • 14、一致性哈希路由策略优化:默认虚拟节点数量调整为100,提高路由的均衡性;
  • 15、通用HTTP任务Handler(httpJobHandler)优化,扩展自定义参数信息,示例参数如下;
url: http://www.xxx.com
method: get 或 post
data: post-data
  • 16、SQL脚本编码默认utf8mb4执行,避免小概率下容器环境中乱码问题;
  • 17、Web IDE交互问题修复:输入源码备注之后按回车跳转error问题处理;
  • 18、执行器初始化逻辑优化:修复懒加载的Bean被提前初始化问题;
  • 19、执行器注册默认值优化;
  • 20、修复bootstrap.min.css.map 404问题;
  • 21、执行器UI交互优化,移除冗余order属性;
  • 22、执行备注消息长度限制,修复数据超长无法存储导致导致回调失败的问题;

注意:XxlJobSpringExecutor组件个别字段调整:“appName” 调整为 “appname” ,升级时该组件时需要注意;

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

Published by xuxueli almost 5 years ago

Release Notes

  • 1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用
@XxlJob("demoJobHandler")
public ReturnT<String> execute(String param) {
    XxlJobLogger.log("hello world");
    return ReturnT.SUCCESS;
}
  • 2、移除commons-exec,采用原生方式实现,降低第三方依赖;
  • 3、执行器回调乱码问题修复;
  • 4、调度中心dispatcher servlet加载顺序优化;
  • 5、执行器回调地址https兼容支持;
  • 6、多个项目依赖升级至较新稳定版本;
  • 注意:最新版本 "XxlJobSpringExecutor" 逻辑有调整,历史项目中该组件的配置方式请参考Sample示例项目进行调整,尤其注意需要移除组件的init和destroy方法;
xxl-job - XXL-JOB v2.1.1,分布式任务调度平台

Published by xuxueli almost 5 years ago

Release Notes

  • 1、 调度中心日志自动清理功能(至此,调度中心/执行器均支持日志自动清理,过期天数均默认设置为30天):调度中心新增配置项("xxl.job.logretentiondays")日志保存天数,过期日志自动清理;解决海量日志情况下日志表慢SQL问题;限制大于等于7时生效,否则关闭清理功能,默认为30;
  • 2、 调度报表优化:新增日志报表的存储表,三天内的任务日志会以每分钟一次的频率异步同步至报表中;任务报表仅读取报表数据,极大提升加载速度;
  • 3、 Cron在线生成工具:任务新增、编辑框通过组件在线生成Cron表达式;
  • 4、 Cron下次执行时间查询:支持通过界面在线查看后续连续5次执行时间;
  • 5、 调度中心新增应用健康检查功能,借助“spring-boot-starter-actuator”,相对地址 “/actuator/health”;
  • 6、 DB脚本默认编码改为utf8mb4,修复字符乱码问题(建议Mysql版本5.7+);
  • 7、 调度中心任务平均分配,触发组件每次获取与线程池数量相关数量的任务,避免大量任务集中在单个调度中心集群节点;
  • 8、 任务触发组件优化,预加载频率正常1s一次,当预加载轮空时主动休眠一个加载周期,动态降低加载频率从而降低DB压力;
  • 9、 调度组件优化:针对永远不会触发的Cron禁止配置和启动;任务Cron最后一次触发后再也不会触发时,比如一次性任务,主动停止相关任务;
  • 10、DB重连优化,修复DB宕机重连后任务调度停止的问题,重连后自动加入调度集群触发任务调度;
  • 11、注册监控线程优化,降低死锁几率;
  • 12、调度中心日志删除优化,改为分页获取ID并根据ID删除的方式,避免批量删除海量日志导致死锁问题;
  • 13、任务重试时参数丢失的问题修复;
  • 14、调度中心移除SQL中的 "now()" 函数;集群部署时不再依赖DB时钟,仅需要保证调度中心应用节点时钟一致即可;
  • 15、任务触发组件加载顺序调整,避免小概率情况下组件随机加载顺序导致的I18N的NPE问题;
  • 16、JobThread自销毁优化,避免并发触发导致triggerQueue中任务丢失问题;
  • 17、调度中心密码限制18位,修复修改密码超过18位无法登陆的问题;
  • 18、任务告警组件分页参数无效问题修复;
  • 19、升级xxl-rpc版本:服务端线程优化,降低线程内存开销;IpUtil优化:增加连通性校,过滤明确非法的网卡;
  • 20、调度中心回调API服务改为restful方式;
  • 21、UI优化,任务列表和日志列表数据表格宽度比例调整,避免数据换行提升体验;
  • 22、登录界面取消默认填写的登录账号密码;
  • 23、执行器表属性调整,"顺序" 属性调整为整型,解决执行器数据较多时无法正确排序的问题;
  • 24、任务列表交互优化,支持查看任务所属执行器的注册节点;
  • 25、项目依赖升级至较新稳定版本,如spring、spring-boot、mybatis、slf4j、groovy等等;
xxl-job - XXL-JOB v2.1.0,分布式任务调度平台

Published by xuxueli over 5 years ago

Release Notes

  • 1、自研调度组件,移除quartz依赖:一方面是为了精简系统降低冗余依赖,另一方面是为了提供系统的可控度与稳定性;
    • 触发:单节点周期性触发,运行事件如delayqueue;
    • 调度:集群竞争,负载方式协同处理,锁竞争-更新触发信息-推送时间轮-锁释放-锁竞争;
  • 2、底层表结构重构:移除11张quartz相关表,并对现有表结构优化梳理;
  • 3、任务日志主键调整为long数据类型,防止海量日志情况下数据溢出;
  • 4、底层线程模型重构:移除Quartz线程池,降低系统线程与内存开销;
  • 5、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 6、权限管理:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
  • 7、调度线程池参数调优;
  • 8、注册表索引优化,缓解锁表问题;
  • 9、新增Jboot执行器Sample示例项目;
  • 10、任务列表优化,支持根据 "任务状态"、"负责人" 属性筛选任务;
  • 11、任务日志列表交互优化,操作按钮合并为分割按钮;
  • 12、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
  • 13、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
  • 14、首页调度报表的日期排序在TIDB下乱序问题修复;
  • 15、调度中心与执行器双向通讯超时时间调整为3s;
  • 16、调度组件销毁流程优化,先停止调度线程,然后等待时间轮内存量任务处理完成,最终销毁时间轮线程;
  • 17、执行器回调线程优化,回调地址为空时销毁问题修复;
  • 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
  • 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;
xxl-job - XXL-JOB v2.0.2,分布式任务调度平台

Published by xuxueli over 5 years ago

Release Notes

  • 1、底层通讯方案优化:升级较新版本xxl-rpc,由"JETTY"方案调整为"NETTY_HTTP"方案,执行器内嵌netty-http-server提供服务,调度中心复用容器端口提供服务;
  • 2、任务告警逻辑调整,改为通过扫描失败日志方式触发。一方面精确扫描失败任务,降低扫描范围;另一方面取消内存队列,降低线程内存消耗;
  • 3、Quartz触发线程池废弃并替换为 "XxlJobThreadPool",降低线程切换、内存占用带来的消耗,提高调度性能;
  • 4、调度线程池隔离,拆分为"Fast"和"Slow"两个线程池,1分钟窗口期内任务耗时达500ms超过10次,该窗口期内判定为慢任务,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
  • 5、执行器热部署时JobHandler重新初始化,修复由此导致的 "jobhandler naming conflicts." 问题;
  • 6、新增Class的加载缓存,解决频繁加载Class会使jvm的方法区空间不足导致OOM的问题;
  • 7、任务支持更换绑定执行器,方便任务分组转移和管理;
  • 8、调度中心告警邮件发送组件改为 “spring-boot-starter-mail”;
  • 9、记住密码功能优化,选中时永久记住;非选中时关闭浏览器即登出;
  • 10、项目依赖升级至较新稳定版本,如quartz、spring、jackson、groovy、xxl-rpc等等;
  • 11、精简项目,取消第三方依赖,如 commons-collections4、commons-lang3 ;
  • 12、执行器回调日志落盘方案复用RPC序列化方案,并移除Jackson依赖;
  • 13、底层Log调优,应用正常终止取消异常栈信息打印;
  • 14、交互优化,尽量避免新开页面窗口;仅WebIDE支持新开页,并提供窗口快速关闭按钮;任务启、停、删除、触发等轻操作提示改为toast方式,
  • 15、任务暂停、删除优化,避免quartz delete不完整导致任务脏数据;
  • 16、任务回调、心跳注册成功日志优化,非核心常规日志调整为debug级别,降低冗余日志输出;
  • 17、调整首页报表默认区间为本周,避免日志量太大查询缓慢;
  • 18、LRU路由更新不及时问题修复;
  • 19、任务失败告警邮件发送逻辑优化;
  • 20、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
  • 21、执行器优雅停机优化;
  • 22、连接池配置优化,增强连接有效性验证;
  • 23、JobHandler#msg长度限制,修复异常情况下日志超长导致内存溢出的问题;
  • 24、升级xxl-rpc至较新版本,修复springboot 2.x版本兼容性问题;
xxl-job - XXL-JOB v2.0.1,分布式任务调度平台

Published by xuxueli almost 6 years ago

Release Notes

  • 1、左侧菜单折叠动画问题修复;
  • 2、调度报表日期分布图默认值统一;
  • 3、freemarker对数字默认加千分位问题修复,解决日志ID被分隔导致查看日志失败问题;
  • 4、底层通讯组件升级,修复通讯异常时无效等待的问题;
  • 5、执行器启动之后jetty停止的问题修复;
xxl-job - XXL-JOB v2.0.0,分布式任务调度平台

Published by xuxueli almost 6 years ago

Release Notes

  • 1、调度中心迁移到 springboot;
  • 2、底层通讯组件迁移至 xxl-rpc;
  • 3、提供官方docker镜像,并推送至中央仓库(docker pull xuxueli/xxl-job-admin),更进一步实现产品开箱即用;
  • 4、新增无框架执行器Sample示例项目 "xxl-job-executor-sample-frameless"。不依赖第三方框架,只需main方法即可启动运行执行器;
  • 5、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
  • 6、任务状态优化,仅运行状态"NORMAL"任务关联至quartz,降低quartz底层数据存储与调度压力;
  • 7、任务状态规范:新增任务默认停止状态,任务更新时保持任务状态不变;
  • 8、IP获取逻辑优化,优先遍历网卡来获取可用IP;
  • 9、任务新增的API服务接口返回任务ID,方便调用方实用;
  • 10、组件化优化,移除对 spring 的依赖:非spring应用选用 "XxlJobExecutor" 、spring应用选用 "XxlJobSpringExecutor" 作为执行器组件;
  • 11、任务RollingLog展示逻辑优化,修复超时任务无法查看的问题;
  • 12、多项UI组件升级到最新版本,如:CodeMirror、Echarts、Jquery 等;
  • 13、项目依赖升级 groovy 至较新稳定版本;pom清理;
  • 14、子任务失败重试重试逻辑优化,子任务失败时将会按照其预设的失败重试次数主动进行重试
xxl-job - XXL-JOB v1.9.2,分布式任务调度平台

Published by xuxueli about 6 years ago

版本 V1.9.2 特性[2018-10-05]

  • 1、任务超时控制:新增任务属性 "任务超时时间",并支持自定义,任务运行超时将会主动中断任务;
  • 2、任务失败重试次数:新增任务属性 "失败重试次数",并支持自定义,当任务失败时将会按照预设的失败重试次数主动进行重试;同时收敛废弃其他失败重试策略,如调度失败、执行失败、状态码失败等;
  • 3、新增任务运行模式 "GLUE模式(PHP) ",支持php脚本任务;
  • 4、新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务;
  • 5、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
  • 6、执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失;
  • 7、任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍;
  • 8、调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;
  • 9、底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题;
  • 10、任务回调结果优化,支持展示在Rolling log中,方便问题排查;
  • 11、底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署;
  • 12、告警邮件固定使用 UTF-8 编码格式,修复由机器编码导致的邮件乱码问题;
  • 13、告警邮件中展示失败告警信息;
  • 14、告警邮箱支持SSL配置;
  • 15、Window机器下File.separator不兼容问题修复;
  • 16、脚本任务异常Log输出优化;
  • 17、任务线程停止变量修饰符优化;
  • 18、脚本任务Log文件流关闭优化;
  • 19、任务报表成功、失败和进行中统计问题修复;
  • 20、核心依赖Core内部国际化处理;
  • 21、默认Quartz线程数调整为50;
  • 22、新增左侧菜单"运行报表";
  • 23、执行器手动设置IP时取消绑定Host的操作,该IP仅供执行器注册使用;修复指定外网IP时无法绑定执行器Host的问题;
  • 24、取消父子任务不可重复的限制,支持循环任务触发等特殊场景;
  • 25、任务调度备注中标注任务触发类型,如Cron触发、父任务触发、API触发等等,方便排查调度日志;
  • 26、底层日志组件SimpleDateFormat线程安全问题修复;
  • 27、执行器通讯线程优化,corePoolSize从256降低至32;
  • 28、任务日志表状态字段类型优化;
  • 29、GLUE脚本文件自动清理功能,及时清理过期脚本文件;
  • 30、执行器注册方式切换优化,切换自动注册时主动同步在线机器,避免执行器为空的问题;
  • 31、跨平台:除了提供Java、Python、PHP等十来种任务模式之外,新增提供基于HTTP的任务模式;
  • 32、底层RPC序列化协议调整为hessian2;
  • 33、修复表字段 “t.order”与数据库关键字冲突查询失败的问题,
  • 34、任务属性枚举 "任务模式、阻塞策略" 国际化优化;
  • 35、分片任务失败重试优化,仅重试当前失败的分片;
  • 36、任务触发时支持动态传参,调度中心与API服务均提供提供动态参数功能;
  • 37、任务执行日志、调度日志字段类型调整,改为text类型并取消字数限制;
  • 38、GLUE任务脚本字段类型调整,改为mediumtext类型,提高GLUE长度上限;
  • 39、任务监控线程Log输出优化,运行中任务的监控Log改为debug级别,减少非核心日志量;
  • 40、项目依赖全量升级至较新稳定版本,如spring、Jackson、groovy等等;
  • 41、docker支持:调度中心提供 Dockerfile 方便快速构建docker镜像;
xxl-job - XXL-JOB v1.9.1,分布式任务调度平台

Published by xuxueli over 6 years ago

版本 V1.9.1 特性[2018-02-22]

  • 1、国际化:调度中心实现国际化,支持中文、英文两种语言,默认为中文。
  • 2、调度报表新增"运行中"中状态项;
  • 3、调度报表优化,报表SQL调优并且新增LocalCache缓存(缓存时间60s),提高大数据量下报表加载速度;
  • 4、修复打包部署时资源文件乱码问题;
  • 5、修复新版本chrome滚动到顶部失效问题;
  • 6、调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;
  • 7、修复脚本任务Log文件未正常close的问题;
  • 8、项目依赖全量升级至较新稳定版本,如spring、jackson等等;
xxl-job - XXL-JOB v1.9.0,分布式任务调度平台

Published by xuxueli almost 7 years ago

版本 v1.9.0 特性

  • 1、新增Nutz执行器Sample示例项目;
  • 2、新增任务运行模式 "GLUE模式(NodeJS) ",支持NodeJS脚本任务;
  • 3、脚本任务Shell、Python和Nodejs等支持获取分片参数;
  • 4、失败重试,完整支持:调度中心调度失败且启用"失败重试"策略时,将会自动重试一次;执行器执行失败且回调失败重试状态(新增失败重试状态返回值)时,也将会自动重试一次;
  • 5、失败告警策略扩展:默认提供邮件失败告警,可扩展短信等,扩展代码位置为 "JobFailMonitorHelper.failAlarm";
  • 6、执行器端口支持自动生成(小于等于0时),避免端口定义冲突;
  • 7、调度报表优化,支持时间区间筛选;
  • 8、Log组件支持输出异常栈信息,底层实现优化;
  • 9、告警邮件样式优化,调整为表格形式,邮件组件调整为commons-email简化邮件操作;
  • 10、项目依赖全量升级至较新稳定版本,如spring、jackson等等;
  • 11、任务日志,记录发起调度的机器信息;
  • 12、交互优化,如登陆注销;
  • 13、任务Cron长度扩展支持至128位,支持负责类型Cron设置;
  • 14、执行器地址录入交互优化,地址长度扩展支持至512位,支持大规模执行器集群配置;
  • 15、任务参数“IJobHandler.execute”入参改为“String params”,增强入参通用性。
  • 16、IJobHandler提供init/destroy方法,支持在相应任务线程初始化和销毁时进行附加操作;
  • 17、任务注解调整为 “@JobHandler”,与任务抽象接口统一;
  • 18、修复任务监控线程被耗时任务阻塞的问题;
  • 19、修复任务监控线程无法监控任务触发和执行状态均未0的问题;
  • 20、执行器动态代理对象,拦截非业务方法的执行;
  • 21、修复JobThread捕获Error错误不更新JobLog的问题;
  • 22、修复任务列表界面左侧菜单合并时样式错乱问题;
  • 23、调度中心项目日志配置改为xml文件格式;
  • 24、Log地址格式兼容,支持非"/"结尾路径配置;
  • 25、底层系统日志级别规范调整,清理遗留代码;
  • 26、建表SQL优化,支持同步创建制定编码的库和表;
  • 27、系统安全性优化,登陆Token写Cookie时进行MD5加密,同时Cookie启用HttpOnly;
  • 28、新增"任务ID"属性,移除"JobKey"属性,前者承担所有功能,方便后续增强任务依赖功能。
  • 29、任务循环依赖问题修复,避免子任务与父任务重复导致的调度死循环;
  • 30、任务列表新增筛选条件 "任务描述",快速检索任务;
  • 31、执行器Log文件定期清理功能:执行器新增配置项("xxl.job.executor.logretentiondays")日志保存天数,日志文件过期自动删除。
xxl-job - XXL-JOB v1.8.2,分布式任务调度平台

Published by xuxueli about 7 years ago

版本 V1.8.2 特性

  • 1、项目主页搭建:提供中英文文档:http://www.xuxueli.com/xxl-job
  • 2、JFinal执行器Sample示例项目;
  • 3、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
  • 4、执行器摘除:执行器销毁时,主动通知调度中心并摘除对应执行器节点,提高执行器状态感知的时效性。
  • 5、执行器手动设置IP时将会绑定Host;
  • 6、规范项目目录,方便扩展多执行器;
  • 7、解决执行器回调URL不支持配置HTTPS时问题;
  • 8、执行器回调线程销毁前, 批量回调队列中数据,防止任务结果丢失;
  • 9、调度中心任务监控线程销毁时,批量对失败任务告警,防止告警信息丢失;
  • 10、任务日志文件路径时间戳格式化时SimpleDateFormat并发问题解决;
xxl-job - XXL-JOB v1.8.1,分布式任务调度平台

Published by xuxueli about 7 years ago

版本 V1.8.1 特性

  • 1、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数处理分片任务;
  • 2、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 3、执行器JobHandler禁止命名冲突;
  • 4、执行器集群地址列表进行自然排序;
  • 5、调度中心,DAO层代码精简优化并且新增测试用例覆盖;
  • 6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
  • 7、新增调度中心API服务测试Demo,方便在调度中心API扩展和测试;
  • 8、任务列表页交互优化,更换执行器分组时自动刷新任务列表,新建任务时默认定位在当前执行器位置;
  • 9、访问令牌(accessToken):为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
  • 10、springboot版本执行器,升级至1.5.6.RELEASE版本;
  • 11、统一maven依赖版本管理;
xxl-job - XXL-JOB v1.8.0,分布式任务调度平台

Published by xuxueli over 7 years ago

版本 V1.8.0 特性

  • 1、任务Cron更新逻辑优化,改为rescheduleJob,同时防止cron重复设置;
  • 2、API回调服务失败状态码优化,方便问题排查;
  • 3、XxlJobLogger的日志多参数支持;
  • 4、路由策略新增 "忙碌转移" 模式:按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;
  • 5、路由策略代码重构;
  • 6、执行器重复注册问题修复;
  • 7、任务线程轮空30次后自动销毁,降低低频任务的无效线程消耗。
  • 8、执行器任务执行结果批量回调,降低回调频率提升执行器性能;
  • 9、springboot版本执行器,取消XML配置,改为类配置方式;
  • 10、执行日志,支持根据运行 "状态" 筛选日志;
  • 11、调度中心任务注册检测逻辑优化;
xxl-job - XXL-JOB v1.7.2,分布式任务调度平台

Published by xuxueli over 7 years ago

1、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
2、失败处理策略;调度失败时的处理策略,策略包括:失败告警(默认)、失败重试;
3、通讯时间戳超时时间调整为180s;
4、执行器与数据库彻底解耦,但是执行器需要配置调度中心集群地址。调度中心提供API供执行器回调和心跳注册服务,取消调度中心内部jetty,心跳周期调整为30s,心跳失效为三倍心跳;
5、执行参数编辑时丢失问题修复;
6、新增任务测试Demo,方便在开发时进行任务逻辑测试;

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

Published by xuxueli over 7 years ago

1、运行日志读写编码统一为UTF-8,解决windows环境下日志乱码问题;
2、通讯超时时间限定为10s,避免异常情况下调度线程占用;
3、执行器,server启动、销毁和注册逻辑调整;
4、JettyServer关闭逻辑优化,修复执行器无法正常关闭导致端口占用和频繁打印c3p0日志的问题;
5、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
6、任务日志清理功能;
7、弹框组件统一替换为layer;
8、升级quartz版本至2.3.0;

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

Published by xuxueli over 7 years ago

  • 1、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python和Groovy等类型脚本;
  • 2、新增spring-boot类型执行器example项目;
  • 3、升级jetty版本至9.2;
  • 4、任务运行日志移除log4j组件依赖,改为底层自主实现,从而取消了对日志组件的依赖限制;
  • 5、执行器移除GlueLoader依赖,改为推送方式实现,从而GLUE源码加载不再依赖JDBC;
  • 6、登录拦截Redirect时获取项目名,解决非根据目录发布时跳转404问题;
Package Rankings
Top 3.57% on Proxy.golang.org
Top 1.19% on Repo1.maven.org
Related Projects