Home - fengkar/elastic-job GitHub Wiki
Welcome to the elastic-job wiki!
Introduction Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架。去掉了和dd-job中的监控和ddframe接入规范部分。 ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX。
任务规划分级
开发中任务
- ISSUE 26 [功能提升] 增加作业和ip对应的运行关系
开源爱好者可认领的任务
- ISSUE 18 [功能提升] 增加上次作业运行消耗时间记录功能
- ISSUE 27 [BUG] 运维平台缺少disable服务器的开关
- ISSUE 29 英文版的job-console
- 作业删除功能,包含作业进程停止,zk信息删除和console操作支持
待明确范围的任务
- ISSUE 2 [未确定的问题] 不能创建前置任务
- ISSUE 4 [未确定的问题] 任务不能保证全局成功
- ISSUE 24 [功能提升] 增加与DataFlow平行的MQFlow类型的作业
- ISSUE 25 [功能提升] 多维度SLA监控报告
未确定的任务
- 稳定性提升
- 事件触发
- 细粒度的缓存监听,使用NodeCache和childrenCache代替TreeCache
- 使用主动心跳监测机制代替zk session过期监测作业健康状态
采用的公司和使用场景
希望加入的功能
- 暂无,欢迎更新
目前发现的较为常见的问题
- 使用Curator不同版本可能会导致问题。如:leaderlatch无法选举的问题,经过排查是curator-recipe版本问题,我用了2.9.1,和2.8.0不兼容,改成2.8就ok了。
常见问题解答
-
Cron设置为每隔1分钟执行,但实际每次执行的时间需要1.5分钟,EJ会不会放弃下次任务? (lengfo,2016-02-29) --支持misfire,如果启用则任务错过重新执行。
-
getOffsetService().getOffsets() 和 上下文context.getOffsets()有什么区别,是否会影响到失败转移? (Sean,2016-02-29) --getOffsetService().getOffsets():从zk取offset;context.getOffsets()从内存取offset。 zk和内存是使用curator的treecache同步的,但是有短时间的不一致。 如果每次处理作业都实时从ZK取offset会导致性能问题,zk可能撑不住,所以建议offset存在客户端内存中;但当前机器挂掉了会丢失offset进度。
-
可否在业务代码中定义故障转移的情况? 比如数据库连接在1台节点上失败,是否可以将任务转移到正常节点上? (Sean,2016-03-01) --关闭failover后,执行失败的分片会在下次触发作业时重分片到正常节点执行