前言
以后所有版本发布新功能都在本页面
往期目录
项目地址:git@gitee.com:dfire/hera.git
hera2.3版本
- 任务新增重复运行字
如果要已经在使用hera调度并且数据库中
hera_job
表无repeat_run
字段,请先在数据库中执行以下语句,添加字段
alter table hera_job add column repeat_run tinyint(2) default 0 COMMENT '是否允许任务重复执行';
此时在编辑任务的时候可以通过选择是/否来决定任务是否允许重复跑
- 新增
wait
状态 (服务降级状态)
wait
状态既不是成功也不是失败。该状态可以通过退出码38
来指定。wait
状态可以理解为当前任务的执行条件没有达到,放弃本次执行,等待下次调度。并且下游任务也不会被调度
假如我们现在有个需求,在下午16点高峰期进行服务降级,不执行某些任务,也不让下游的任务执行。此时我们就可以通过指定退出码为
38
来达到本次调度任务降级的目的。
Shell
脚本内容为
执行任务后,结果为
wait
状态
并且此时下游任务也未执行。
-
开发中心添加任务时需要选择执行机器组
-
增加容错策略(
快速失败
失败重试
)
- failfast(快速失败):心跳信息,web请求等
- failback(失败恢复) :任务执行命令,任务完成状态回写等
- 增加预热检测
application.yml
中增加hera.warmUpCheck
配置,值为int
类型,单位秒,默认开启预热10
秒,表示当机器达到一定的条件时(CPU使用达到60%
,内存使用达到70%
,最近两次选的work
为同一台机器)会进行机器预热检测。如果值小于等于0
表示不进行预热检测。至于为什么要开启,是因为任务从分发到执行需要经历一定的时间,如果在该时间段内分发了大量的任务容易导致work
应用挂掉。
- 任务手动恢复日期可自定义
之前我们的手动恢复其实对于版本有限制:只能恢复大于昨天(昨天,今天)的任务。现在我们对该配置加了参数:
hera.jobCacheDay
默认值为2
,即只能恢复最近两天版本的任务,如果你需要恢复更久之前的任务,可以修改该参数。有一点需要注意,如果该参数你配置的很大(并且你每天的版本数量很多,见hera_action
表),那么将会使用更大的内存,任务成功后的信号广播速度可能会稍微延长,即下游依赖任务的触发时间会稍微延长。
- 任务分发负载均衡
默认轮询,可选:随机(
random
)、轮询(roundrobin
)
hera2.2-beta版本
-
任务编辑时支持修改任务类型
-
任务组添加管理员
bug
修复
之前为任务组添加管理员时无反应,后端解析问题 已修复
- 修复
centos7
机器组监控不显示的bug
兼容
centos7
机器组监控
- 对于只有一台work时,降低任务的分发频率,尽量避免crash
在任务量较大而机器渣且少的情况下,程序容易被
crash
。这次调整了任务多次分发到同一台work
时的频率。
-
修复任务重试时
hostGroupId
为空 -
新增一键开启/关闭上游所有任务的接口
有时候可能需要把关闭的任务再开启,现在只留了接口,供以后提供页面支持。内部实现没有采用直接修改数据库内容,还是走的
http
开启接口,发现异常时修改任务Id
根据提示再次请求该接口即可。
http://localhost:8080/hera/scheduleCenter/switchAll?jobId=1179&type=0&auto=1
1
jobId
: 要处理的的任务
2type
:要处理该任务的上游任务 还是下游任务0:
上游1:
下游
3auto
: 要把上游/下游 任务处理为哪种 状态0:
关闭1:
开启2:
失效
- 修复任务异常退出时,退出码为0的情况
任务被
Kill
掉时,偶尔出现任务仍然执行成功的bug
,已修复
-
修复脚本改变后,任务在未全量生成版本时,而执行脚本内容还是老脚本的情况
-
work断线时向
hera.admin
用户发送邮件
当work断线时,向
hera.admin
用户发送邮件,用户名默认hera
请查看application.yml
配置中hera.admin
参数。邮件可以在hera_user
表中添加。暂不支持页面修改
-
查看日志时日志分页按钮禁用
-
任务增加失效按钮
对于哪些可能还会被开启的任务可以进行关闭操作,而彻底不需要的任务点击失效。便于后续管理员对任务进行清理
- 支持任务列表中直接鼠标拖动任务/组进行移动
在调度中心/开发中心,任务/组均支持鼠标拖动进行组间的移动。移动后执行权限并未改变
- 修复在不同时区日志展示展示时间不准的
bug
发现在不同时区日志时间总是以当前浏览器地域为准,已修复