tag | 8d7fa944f12fe62348b0fae32a74dba4a691d3f0 | |
---|---|---|
tagger | terrymanu <terrymanu@163.com> | Mon Oct 26 21:01:31 2015 +0800 |
object | 07ae762bda04b72f037bcd61eb7c92c26daccb10 |
1.0.2
commit | 07ae762bda04b72f037bcd61eb7c92c26daccb10 | [log] [tgz] |
---|---|---|
author | 张亮 <terrymanu@163.com> | Mon Oct 26 20:58:25 2015 +0800 |
committer | 张亮 <terrymanu@163.com> | Mon Oct 26 20:58:25 2015 +0800 |
tree | ae704e79b997d77d02a3b5bb6ab677ac14d36cf7 | |
parent | d423d9c3948d8fe4e24082e979162441f2a2fa58 [diff] |
Update README_en.md
##Elastic-Job - distributed scheduled job solution
Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架。去掉了和dd-job中的监控和ddframe接入规范部分。该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发。
ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX。
elastic-job和ddframe关系见下图
##主要贡献者
**讨论QQ群:**430066234(不限于Elastic-Job,包括分布式,定时任务相关以及其他互联网技术交流)
Elastic-Job Wiki (由社区志愿者自由编辑的)
elastic-job已经发布到中央仓库,可以在pom.xml文件中直接引入maven坐标。
<!-- 引入elastic-job核心模块 --> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-core</artifactId> <version>1.0.2</version> </dependency> <!-- 使用springframework自定义命名空间时引入 --> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-spring</artifactId> <version>1.0.2</version> </dependency>
public class MyElasticJob extends AbstractThroughputDataFlowElasticJob<Foo> { @Override protected List<Foo> fetchData(JobExecutionMultipleShardingContext context) { Map<Integer, String> offset = context.getOffsets(); List<Foo> result = // get data from database by sharding items and by offset return result; } @Override protected boolean processData(JobExecutionMultipleShardingContext context, Foo data) { // process data // ... // store offset for (int each : context.getShardingItems()) { updateOffset(each, "your offset, maybe id"); } return true; } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:reg="http://www.dangdang.com/schema/ddframe/reg" xmlns:job="http://www.dangdang.com/schema/ddframe/job" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.dangdang.com/schema/ddframe/reg http://www.dangdang.com/schema/ddframe/reg/reg.xsd http://www.dangdang.com/schema/ddframe/job http://www.dangdang.com/schema/ddframe/job/job.xsd "> <!--配置作业注册中心 --> <reg:zookeeper id="regCenter" serverLists=" yourhost:2181" namespace="dd-job" baseSleepTimeMilliseconds="1000" maxSleepTimeMilliseconds="3000" maxRetries="3" /> <!-- 配置作业--> <job:bean id="oneOffElasticJob" class="xxx.MyElasticJob" regCenter="regCenter" cron="0/10 * * * * ?" shardingTotalCount="3" shardingItemParameters="0=A,1=B,2=C" /> </beans>