☄️事务任务
# 事务任务
使用者可能有这种事务需求的业务,比如 A -> B -> C 的场景,如果C执行失败了, 则通知 A和B 任务进行业务回滚。 则这种方式 Gobrs-Async 也是支持的
事务任务也需要继承 AsyncTask
, 唯一的区别就是以下三个步骤。
只需要在application.yml
中配置
# application.yml 配置
gobrs:
async:
config:
rules:
# 规则 是数组类型的 多组规则
- name: "general"
content: "AService->BService->FService->GService->HService;EService->CService;AService"
transaction: true
# 注解声明
在你需要进行事务的任务上进行回滚注解, Gobrs-Async 会找到 AService
任务链之前的所有任务 回调rollback
方法
@Task(callback = true)
public class AService extend AsyncTask<Object,Object>{
// ...
}
# 重写默认rollback方法
// 事务回滚 具体回滚业务需要自己实现 该方法是一个默认方法 需要自己手动重写
@Override
public void rollback(DataContext dataContext) {
//super.rollback(dataContext);
//todo rollback business
}
# 注
注意 @Task(callback = true)
需要注解在可能触发异常的任务上 官网示例 (opens new window)
Last Updated: 12/30/2022, 6:10:58 PM