Map模型
基于MapJobProcessor,调用Map方法,即可实现大数据分布式跑批的能力。
注意事项
- SchedulerX不保证子任务一定执行一次,在特殊条件下会failover,可能会导致子任务重复执行,需要业务方自己实现幂等。
- SchedulerX使用的是Hessian序列化框架,目前不支持LocalDateTime和BigDecimal。子任务中如果有如上两个数据结构,请替换其他的数据结构(特别是BigDecimal,序列化不会报错,反序列化会变成0)。
接口
执行方式
- 并行计算:最多支持300任务,有子任务列表。
- 内存网格:基于内存计算,最多支持50,000以下子任务,速度快。
- 网格计算:基于文件计算,最多支持1,000,000子任务。
高级配置
任务管理高级配置参数说明如下:
发送50条消息的Demo示例(适用于Map模型)
@Component
public class TestMapJobProcessor extends MapJobProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
String taskName = context.getTaskName();
int dispatchNum = 50;
if (isRootTask(context)) {
System.out.println("start root task");
List<String> msgList = Lists.newArrayList();
for (int i = 0; i <= dispatchNum; i++) {
msgList.add("msg_" + i);
}
return map(msgList, "Level1Dispatch");
} else if (taskName.equals("Level1Dispatch")) {
String task = (String)context.getTask();
System.out.println(task);
return new