in schedulerx-demo/schedulerx-example-springboot/src/main/java/com/aliyun/schedulerx/example/processor/ParallelJob.java [43:71]
public ProcessResult process(JobContext context) throws Exception {
if(isRootTask(context)){
logger.info("构建并行计算的子任务列表...");
List<ParallelAccountInfo> list = new LinkedList();
/**
* 判断如果是rootTask的情况下,构建并行计算子任务对象列表
* 在实际业务场景中,用户可自行根据业务场景加载子任务对象且该业务对象实现BizSubTask接口
* 场景案例:
* 1、从数据库中加载未被处理的客户账户信息
* 2、构建省份城市地区信息列表,按区域分发任务处理
* 3、根据业务标签作为子任务分类,如:电器、日用品、食品等
* 4、可根据时间作为子任务分类,如:按月(1月、2月...)
*/
for(int i=0; i < 20; i++){
list.add(new ParallelAccountInfo(i, "CUS"+StringUtils.leftPad(i+"", 4, "0"),
"AC"+StringUtils.leftPad(i+"", 12, "0")));
}
return map(list, "transfer");
}else {
/**
* 非rootTask,用户可以获取对应的子任务信息进行相应的业务处理
*/
ParallelAccountInfo obj = (ParallelAccountInfo)context.getTask();
// 针对获取的 obj子任务信息,进行业务逻辑处理
// do something
logger.info("处理子任务信息:{}", JSON.toJSONString(obj));
return new ProcessResult(true);
}
}