加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动 > 正文

我从高级软件工程师身上学到的那些经验与教训

发布时间:2019-10-10 21:02:49 所属栏目:移动 来源:核子可乐译
导读:副标题#e# 一年之前,我开始在彭博担任全职工作。从那时起,我就在构思这篇文章。我想象自己能够在时机成熟时,把自己的想法都倾诉于纸端。但刚刚过去一个月,我就意识到这并非易事:随着工作的推进,我忘掉了很多自己刚刚学到的东西。这些东西快速内化,使

这是个关于搜索与 SQLAlchemy 的故事。在 BNEF,我们需要处理大量由分析师们撰写的研究报告。每当报告发布时,我们都会收到一条消息;在收到消息之后,我们会通过 SQLAlchemy 进入数据库,获取我们需要的全部信息,进行转换,并将结果发送至 solr 实例进行索引。但这时候,我们发现了奇怪的 AF bug。

每天早上,连接数据库的操作都会失败,消息提示“MYSQL 服务器不存在”。有时候连下午都会出现这种状况。由于下午时段的使用量最大,所以我首先进行了一番检查。没问题,机器的运行状态一切正常。我们全天会向数据库发出数千次请求,都没有失败。那么,为什么负载强度这么低的情况反而会出问题呢?

哦,可能是我们在事务结束后没有关闭会话?所以失败其实来自同一段会话,只不过下一个请求出现在很长一段时间之后,这就引发了超时——因为此次服务器已经关闭了。快速查看代码,我们通过上下文管理器检查了每一次在 exit() 上调用 session.close() 的读取操作。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读