# tryagain-方法重放 **Repository Path**: rikuasoby/tryagain-aop ## Basic Information - **Project Name**: tryagain-方法重放 - **Description**: 通过tryagain注解,将报错的方法保存,可手动进行重发调用。 用于对接第三方或异步方法出现异常需重试的情况 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-28 - **Last Updated**: 2023-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Java ## README ### 功能 当系统内部异步调用或外部调用时,可能由于系统问题或者网络问题产生异常,排查修复后需要重新调用方法. 当外部系统调用我方系统出现异常,又难以让对方重新发起时,需要重新调用方法. 故将调用时的参数,方法,异常记录到表里,待异常处理完毕后,根据id号将方法重新调用. ### 依赖 mysql,springboot,mybatisplus,fastjson ### 测试 创建表 ``` CREATE TABLE `redoerror` ( `id` bigint(0) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, `error` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; ``` 更改数据库连接 启动 TryAgainApplication 访问 http://127.0.0.1:8080/doc.html 执行doError方法 产生异常,即可看到redoerror表产生数据 执行tryAgain方法 将redoerror表的id当参数传入,即可看到doError被再次调用 ### 使用 复制代码 调整TryAgainAspect切面 在需要重试的service方法上加@TryAgain注解