🍪流程参数
任务流程的params参数 有三种参数形式。
- 统一上下文模式
- 精确任务模式
Gobrs-Async
提供参数封装
注意
任务的参数类型要跟 AsyncTask<Param,Result> 抽象父类中的 Param泛型保持一致,否则可能会出现匹配不成功现象。
# 参数类型一
如果任务流程中所有任务 都是用同一个参数进行传递传递(类似于DataContext 上下文), 则params 直接传入公用的同一个参数即可
@Builder
public static class DataContext {
private String userName;
private String password;
private String address;
}
@Test
public void caseParams1() {
DataContext dataContext = DataContext.builder().userName("sizegang").password("1234").address("Beijing").build();
long timeOut = 3000; //流程超时时间
gobrsAsync.go("param", () -> dataContext, timeOut);
}
# 参数类型二
如果任务流程中不同任务使用不同的参数。则参数需要传递Map类型, Map的key 为 任务bean 名称, 值为所需要传递的参数值。
@Test
public void caseParams2() {
HashMap<Class<?>, Object> params = new HashMap<>();
params.put(CaskParamTask.class, "CaskParamTask参数");
gobrsAsync.go("param", () -> params);
}
# 参数类型三
如果开发者对以上两种传参数方式使用不适,可以使用第三种方式。
- 注意
1.3.1-RELEASE
提供该使用方式
@Test
public void caseParams3() {
/**
* key 是 class类型
*/
GobrsParamSupport paramSupport = GobrsParamSupport.create().putNext(CaskParamTask.class, "CaskParamTask的参数");
gobrsAsync.go("param", () -> paramSupport);
}
上手快速通道:机票 (opens new window)
Last Updated: 12/30/2022, 6:10:58 PM