🍑任务中断
# 中断状态码
在流程中如果你想在某种业务场景下手动关闭任务流程执行。 并在任务触发器执行完成之后,根据AsyncResult
的结果,判断不同的业务逻辑
Gobrs-Async 也为你提供了途径。 用户只需要在 异步任务的 task
方法中 手动跳用 stopAsync
透传TaskSupport
无需关注内部实现,即可轻松完成关闭主流程。
stopAsync
方法有两个参数说明如下:
TaskSupport
: Gobrs-Async 使用参数, 透传即可。expCode
: 中断状态码,可自定义枚举
@Override
public Map task(DataContext dataContext, TaskSupport support) {
try {
// todo 执行任务
} catch (Exception e) {
// todo 根据不同的异常 处理返回不同的 中断码
if (e instanceof RedirectSimpleException) {
// 中断任务流程
stopAsync(support, PRODUCT_NOT_FOUND);
return null;
}
stopAsync(support, SYSTEM_DEMOTION);
}
return null;
}
任务触发器执行完成 执行完成之后,会获取 AsyncResult
任务流程执行结果。
根据不同的中断码,执行不同的业务逻辑。
Map<String, Object> params = new HashMap();
// 任务流程名称 , 任务流程传入参数, 任务流程超时时间
AsyncResult asyncResult = gobrsAsync.go("ruleName", () -> params, timeOut);
if(asyncResult.getExpCode().equals(100)){
// 业务一
}else if(asyncResult.getExpCode().equals(200)){
// 业务二
}
- name: 技术小屋
desc: 大道至简,知易行难
avatar: https://cdn.jsdelivr.net/gh/xugaoyi/image_store/blog/20200122153807.jpg # 可选
link: https://docs.sizegang.cn/ # 可选
bgColor: '#CBEAFA' # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
textColor: '#6854A1' # 可选,默认var(--textColor)
- name: 架构师必经之路
desc: '精品学习资源'
avatar: https://cdn.jsdelivr.net/gh/xaoxuu/assets@master/avatar/avatar.png
link: https://learn.sizegang.cn
bgColor: '#718971'
textColor: '#fff'
- name: 平凡的你我
desc: 快乐购物,享受生活
avatar: https://reinness.com/avatar.png
link: https://m.jd.com
bgColor: '#FCDBA0'
textColor: '#A05F2C'
Last Updated: 11/4/2022, 3:19:44 PM