Gobrs-Async Gobrs-Async
🚘首页
🧧指南
🍭FAQ
💖支持
🚨加入群聊
🍅GitEE (opens new window)
GitHub (opens new window)
🚘首页
🧧指南
🍭FAQ
💖支持
🚨加入群聊
🍅GitEE (opens new window)
GitHub (opens new window)
  • 🥪项目特性

    • 🍿框架设计
  • 🎒框架设计

    • 🥧简介
    • 🍿框架设计
    • 🍍框架落地
  • 🍖快速开始

    • 🍔快速上手
    • 🌭框架集成
    • 🥤启动流程
    • 🍪流程参数
    • 🏝流程结果
  • 🥘规则配置

    • 🍅规则配置
  • 🥊任务类型

    • 🍅普通任务
    • 💥重试任务
    • ☄️事务任务
      • 事务任务
        • application.yml 配置
        • 注解声明
        • 重写默认rollback方法
        • 注
    • 🌈超时任务
    • ⛱方法任务
  • 🔥高级特性

    • 💐线程复用
    • 🧋运行日志
    • 🍜规则热更新
    • 🍑任务中断
    • 🌺可选子流程
    • 🌹状态流程
    • 🍒异常拦截
    • 🥪全局任务拦截
    • 🍏自定义线程池
    • 🍒可选的执行流程
  • 🚐插件

    • 🛻插件简介
    • 🏚监控系列

      • ⛽️skywalkiing
      • 🏖hippo4j
    • 🛸日志系列

      • 🚧全链路traceId
  • 🍿性能考量

    • 🍎框架压测
    • 🍹框架对比
    • 🧅版本号手册
  • 🌕展望

    • 🍊展望
  • 🍯联系作者

    • 🥐加群沟通
目录

☄️事务任务

# 事务任务

使用者可能有这种事务需求的业务,比如 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
💥重试任务
🌈超时任务

← 💥重试任务 🌈超时任务→

最近更新
更多文章>
Gobrs-Async | Copyright © 2022-2023 Memorydoc | Apache License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式