这几天在B站做一个热度预测模型,项目中有大量的网络I/O交互。
项目很快撸完上线运行,开始没什么问题,但是过了几天之后,我发现App偶尔会挂掉。
于是我抽空看了一下日志,发现是消费一个内部Kafka的时候被Connect refuse了,观察了一下原因,感觉是因为负责那套系统的大哥正在拼命迭代系统,每次都会造成不可用。
于是我不得不给App加上异常处理。其实我平常不会这样做的,一直相信Let it Crash才是正道。加上自己写的异常重试处理之后,这个问题果然解决。
不过好日子没过几天,另外一个依赖系统的大哥也开始疯狂迭代了。这次的情况比上个问题要复杂一点,于是我就在网上找了找重试库,结果就愉快地发现了Retrying这个神奇的库。
由于只需要对函数使用装饰器,所以完全不会嵌入代码,造成代码结构的破坏。而且提供的功能也完全满足了我的需求。
非常开心。