elasticjob是有当当网开源的分布式任务框架,有丰富的中文文档和demo,大家可以自行下载源码和demo学习
Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。
Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务;
Elastic-Job-Cloud采用自研Mesos Framework的解决方案,额外提供资源治理、应用分发以及进程隔离等功能
架构:
github地址:https://github.com/elasticjob
码云地址:https://gitee.com/elasticjob
文档官网地址:http://elasticjob.io/index_zh.html
任务时间触发,根据分片数量和分片项参数以及分片策略确定任务在哪一台台机器上执行。
下面的配置会启动三个线程处理三个分片的数据,代码逻辑获取0=A这些参数确定取的数据不会重复。
如果任务处理时间超过5秒也不会重新开启新线程而是等待上次调度任务结束,如果zk通信异常则会立即停止任务线程
设置流式处理为true则只有当返回null或空集合时任务才停止。
dataflowJob:
cron: 0/5 * * * * ?
shardingTotalCount: 3
shardingItemParameters: 0=A,1=B,2=C