博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016年2月18日:Spring Retry
阅读量:6705 次
发布时间:2019-06-25

本文共 517 字,大约阅读时间需要 1 分钟。

  hot3.png

有风,不大,天气晴朗

今天的任务之一是在对接一个非幂等的接口的基础上为其添加重试的逻辑。之前偶然看得 Spring Retry 这样项目,所以借此机会研究了一下。这个项目顾名思义,就是专门做重试的(从 Spring Batch 抽出来的)

但遗憾的是,花了两个小时(有些长)了解了 Spring Retry 之后,发现 Spring Retry 这个项目不能满足我的需要。

因为对接的接口是非幂等的,所以不能简单的反复重试。在重试之前需要做查询功能,避免不必要的重试带来的业务错误。但 Spring Retry 的 @Retryable 顾名思义,是反复重试被这个注释所标记的方法,当重试条件满足时。

上面描述的是 Spring Retry 的声明式的重试机制,它还有编程时的代码重试。同时,Spring Retry 还有有状态和无状态的重试两个概念,所以我想 Spring Retry 通过编程的方式还是可以实现我的需要,但那又和我自己写有什么区别呢。

对于重试这个功能,我又自己实现一个小框架的想法。

但是,要再次强调,服务应当是幂等的。

转载于:https://my.oschina.net/lifany/blog/617453

你可能感兴趣的文章
oracle拼接函数:将多个字段拼接在一行显示
查看>>
多重异常的时候要注意的一些问题
查看>>
float保留7位double保留15位之后的数字四舍五进
查看>>
union on
查看>>
videojs
查看>>
如何实现文件自动归类?
查看>>
出现报错: module build failed error couldn't find preset es2015 relative to directory
查看>>
PL/SQL 操作数据库常见脚本
查看>>
ZendStudio快捷键
查看>>
HttpClient 教程 (一)
查看>>
PHPExcel类导入Excel用法
查看>>
Linux 6.4 partprobe出现warning问题
查看>>
sublimetext 使用正则表达式匹配中文
查看>>
ethereumjs/ethereumjs-blockchain-1-简介和API
查看>>
python曲线拟合
查看>>
虚拟机中Opensuse扩展分区大小
查看>>
内存管理
查看>>
Leetcode | Unique Binary Search Trees I && II
查看>>
Ubuntu 16.04 - python3 安装mysql驱动
查看>>
f1 f12热键关闭
查看>>