专栏名称: 程序人生
十年漫漫程序人生,打过各种杂,也做过让我骄傲的软件;管理过数十人的团队,还带领一班兄弟姐妹创过业,目前在硅谷一家创业公司担任 VP。关注程序人生,了解程序猿,学做程序猿,做好程序猿,让我们的程序人生精彩满满。
目录
相关文章推荐
伯乐在线  ·  神操作!中国工程师拖 4 箱硬盘 80TB ... ·  12 小时前  
伯乐在线  ·  神操作!中国工程师拖 4 箱硬盘 80TB ... ·  12 小时前  
程序猿  ·  “把 if 往上提,for 往下放!” ·  22 小时前  
京东科技技术说  ·  京东率先开启“3D信息流时代” 让购物更有趣 ·  2 天前  
OSC开源社区  ·  你每天都很急(程序员版) ·  4 天前  
51好读  ›  专栏  ›  程序人生

停下来,歇口气,造轮子

程序人生  · 公众号  · 程序员  · 2017-10-13 13:13

正文

请到「今天看啥」查看全文


这样的好处是:构建系统在我们自己的 VPC 中,可以从 vault 中获取数据库的 credentials;同时,我们只需要在构建系统里搭载合适的 erlang / elixir 版本,然后通过 include ERTS 的方式构建,可以让目标机上完全不用关心 erlang VM 的版本。

那位说,为何不在 webhook 里把消息插入 erlang 内部的一个 queue,而是要引入外部的 SQS 呢?这是因为 build 耗时很长,和系统/工具链的很多环节打交道,中间有各种可能,如果处理消息的 process 挂掉,消息跟着也随风而逝。这会使得我们失去处理完这个 build 的机会,这样不好;然而要处理好这些边边角角的情况,做持久化,需要额外写不少代码。而 SQS 保证消息不会丢失,dequeue 后消息只是隐藏起来,在 visibility timeout 内对其他人不可见,所以处理失败也不怕,visibility timeout 一过,又可以重新处理;只有所有处理结束,我们显式删除消息,消息才会真正从 queue 中拿走。另外,SQS 对这样消息体量的应用,几乎是免费,何乐而不为?

这个任务我处理近一周,写下 650 行代码,发布不下十个 release,已经在线上为内部的三个 elixir repo 提供服务,目前一切运行良好。







请到「今天看啥」查看全文