Haxl 是一个 Haskell 类库,它可以简化进入远程数据库和基于Web服务器的步骤。Haxl可以自动:
为相同的数据源批处理多个请求
并发访问多个不同的数据源
缓存先前的一个请求
所有这些动作都是在后台操作的,此举意味着你的数据抓取代码可以比原本的代码更加干净、清晰。如果你没有优化数据抓取程序,Haxl可以帮你解决大麻烦。
很多服务遵循一个共同的架构模式:一组是事实,另一组是想要回答这些事实问题的客户。在中间是一组如何回答特定问题的规则——真正的业务逻辑。
在Facebook,Sigma服务负责将不同的内容进行分类。Sigma客户问一下高层问题,如“这篇文章是垃圾吗?”或“这个URL和恶意软件有联系吗?”Sigma则会回答“是的,阻止该帐户”或“不,继续”。
Sigma规则目前都是用一个称为FXL的特定域名语言编写的,FXL还被当作是一种脚本语言来使用。
多样的数据源
Haxl数据源根据请求类型进行分类,你可以拥有任意数量的数据源共存于同一Haxl客户,每个数据源可能是用于获取不同类型的数据。GADT可以确保请求类型的安全,所以请求类型总是配上其结果类型。Typeable类所请求的不同数据源可以存储在Haxl请求存储库里。
使用案例
我们希望Haxl在接下来的商业App里能够发挥更多的用处:
项目主页:https://code.facebook.com/projects/854888367872565/haxl/
Github地址:https://github.com/facebook/Haxl
原文链接:http://code.csdn.net/news/2820171
