常见的架构,API 接入层上需要将多个数据源组合吐出。前面获取的数据,是后面的依赖。
有没有一种比较优雅点的方式,可以避免某个小功能点的代码 /数据异常导致的异常导致整体数据无法吐出。
针对每个功能点 try...catch...
确实不太优雅,也难以维护。
全局的异常捕获也无法完成这样的需求。
各位大佬,有没有自己的实践可以分享一下的?
1
lnanddj OP 自己实现类似 FilterChain 的东西,然后针对 chain 的调用做 try...catch.. 貌似也可以,但是对于前后依赖的数据有点蛋疼
|
2
ldcloli 2020-06-24 17:39:39 +08:00
将每个功能点拆出来成一个单独任务,可以设置每个任务的前后依赖,设置返回数据的必要性,最后所有依赖的任务排列成有向无环图,并行执行
|
3
momocraft 2020-06-24 17:43:16 +08:00
Future / Either
|
4
crclz 2020-06-25 12:14:29 +08:00
前面的数据是后面的依赖...你前面数据都获取失败了,后面数据怎么获取?
对于每一个环节,尝试向数据源读取 3 次,如果 3 次失败,就抛出异常。 正常情况下是不会出现失败的,如果失败很多次,就报警发邮箱。 |