整理后的代码
parent
ed174b1984
commit
389e35c6d2
@ -1,71 +0,0 @@
|
|||||||
package com.example.application.job;
|
|
||||||
|
|
||||||
import com.dangdang.ddframe.job.api.ShardingContext;
|
|
||||||
import com.dangdang.ddframe.job.api.dataflow.DataflowJob;
|
|
||||||
import com.example.autoconfig.ElatisDataflowJob;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author q
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@ElatisDataflowJob(
|
|
||||||
jobName = "MyDataflowJob",
|
|
||||||
cron = "0/3 * * * * ?",
|
|
||||||
shardingTotalCount = 2,
|
|
||||||
overwrite = true,
|
|
||||||
streamingProcess = true,
|
|
||||||
jobEvent = false
|
|
||||||
)
|
|
||||||
public class MyDataflowJob implements DataflowJob<Integer> {
|
|
||||||
|
|
||||||
private List<Integer> list;
|
|
||||||
|
|
||||||
{
|
|
||||||
list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public List<Integer> fetchData(ShardingContext shardingContext) {
|
|
||||||
|
|
||||||
List<Integer> result = new ArrayList<>();
|
|
||||||
|
|
||||||
// 数字 % 分片总数 == 当前分片数
|
|
||||||
for (Integer index : list) {
|
|
||||||
if (index % shardingContext.getShardingTotalCount() == shardingContext.getShardingItem()){
|
|
||||||
result.add(index);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 模拟处理时间耗时
|
|
||||||
try {
|
|
||||||
Thread.sleep(3000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("我是分片项: {} , 我抓取的数据是: {} ",shardingContext.getShardingItem(), result);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void processData(ShardingContext shardingContext, List<Integer> result) {
|
|
||||||
|
|
||||||
// list.removeAll(result);
|
|
||||||
|
|
||||||
// 模拟处理时间耗时
|
|
||||||
try {
|
|
||||||
Thread.sleep(5000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("我是分片项: {}, 我是处理的数据是: {}", shardingContext.getShardingItem(), result);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package com.example.application.job;
|
|
||||||
|
|
||||||
import com.dangdang.ddframe.job.api.ShardingContext;
|
|
||||||
import com.dangdang.ddframe.job.api.simple.SimpleJob;
|
|
||||||
import com.example.autoconfig.ElasticSimpleJob;
|
|
||||||
import com.example.autoconfig.sharding.MyshardingStrategy;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 测试自定义分片策略的Job
|
|
||||||
* @author q
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@ElasticSimpleJob(
|
|
||||||
jobName = "MyShardingJob",
|
|
||||||
cron = "0/3 * * * * ?",
|
|
||||||
shardingTotalCount = 10,
|
|
||||||
overwrite = true,
|
|
||||||
jobStrategy = MyshardingStrategy.class,
|
|
||||||
jobEvent = false
|
|
||||||
)
|
|
||||||
public class MyShardingJob implements SimpleJob {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(ShardingContext shardingContext) {
|
|
||||||
log.info("{} : 我是分片项: {} , 总分片数 : {} ",
|
|
||||||
this.getClass().getSimpleName(),
|
|
||||||
shardingContext.getShardingItem(),
|
|
||||||
shardingContext.getShardingTotalCount()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package com.example.application.job;
|
|
||||||
|
|
||||||
import com.dangdang.ddframe.job.api.ShardingContext;
|
|
||||||
import com.dangdang.ddframe.job.api.simple.SimpleJob;
|
|
||||||
import com.example.autoconfig.ElasticSimpleJob;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author q
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@ElasticSimpleJob(
|
|
||||||
jobName = "MySimpleJob",
|
|
||||||
cron = "0/3 * * * * ?",
|
|
||||||
shardingTotalCount = 2,
|
|
||||||
overwrite = true,
|
|
||||||
jobEvent = false
|
|
||||||
)
|
|
||||||
public class MySimpleJob implements SimpleJob {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(ShardingContext shardingContext) {
|
|
||||||
log.info("{} : 我是分片项: {} , 总分片数 : {} ",
|
|
||||||
this.getClass().getSimpleName(),
|
|
||||||
shardingContext.getShardingItem(),
|
|
||||||
shardingContext.getShardingTotalCount()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue