关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error【社交系统研发日记十】
2017-06-28 17:00
295 查看
什么是ThinkSNS ?
ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+)。社交系统ThinkSNS团队拥有超过九年的移动互联网软件/网站/APP开发经验,涉及行业:粉丝社群、直播互动、移动医疗、电子商务、生活服务、在线教育、旅游出行、移动办公、电子杂志、休闲娱乐、企业信息等。我们的服务包括快速建站、提供技术及产品解决方案、技术支持维护,除此之外,如果你软件方案足够好,我们还能提供技术孵化服务,同时,我们也提供TS的二次开发服务以及网站开发、Android APP开发、iOS APP开发、H5开发、微信公众号开发、小程序开发等定制开发服务,更多TS问题请咨询QQ:3298713109。
这是 https://github.com/overtrue/pinyin 首页 README 中的持续集成状态。之前有朋友问我,这个 travis 状态时 error 能用么?肯定是能用,我们来看下 travis 上什么地方错误了:
已经显示出来了,其中单元测试失败的是 php 5.5 和 php 5.6 我们随便点击一个进去看看
超过 10m 没有收到输出,所以 travis 认为构建是有问题的。其实吧~确实有问题,个人也苦恼了很久,没有收到输出的构建是 tests/GeneratorFileDictLoaderTest.php 这个测试类测试的是 Overtrue\Pinyin\GeneratorFileDictLoader 这个加载器。解释下这个加载器,因为拼音库是基于词库的,而词库非常大,在很多场景下内存中是不允许载入这么多的数据的。所以这个加载器利用 php5.5+的 Generator (生成器)特性来生成数据,而生成数据的代价就是需要大量的磁盘 IO 以及增加 >90% 的允许时间。(PHP 官方文档中有说明)。travis 认为构建失败原因:这个问题本身可能存在于 PHP 5.5 & 5.6 的文件系统(看 PHP 改动日志是有改动的)造成了假死,再加上 travis 本身 IO 能力比较低。所以造成生成器同时打开多个文件流之后就假死了。
ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+)。社交系统ThinkSNS团队拥有超过九年的移动互联网软件/网站/APP开发经验,涉及行业:粉丝社群、直播互动、移动医疗、电子商务、生活服务、在线教育、旅游出行、移动办公、电子杂志、休闲娱乐、企业信息等。我们的服务包括快速建站、提供技术及产品解决方案、技术支持维护,除此之外,如果你软件方案足够好,我们还能提供技术孵化服务,同时,我们也提供TS的二次开发服务以及网站开发、Android APP开发、iOS APP开发、H5开发、微信公众号开发、小程序开发等定制开发服务,更多TS问题请咨询QQ:3298713109。
这是 https://github.com/overtrue/pinyin 首页 README 中的持续集成状态。之前有朋友问我,这个 travis 状态时 error 能用么?肯定是能用,我们来看下 travis 上什么地方错误了:
已经显示出来了,其中单元测试失败的是 php 5.5 和 php 5.6 我们随便点击一个进去看看
超过 10m 没有收到输出,所以 travis 认为构建是有问题的。其实吧~确实有问题,个人也苦恼了很久,没有收到输出的构建是 tests/GeneratorFileDictLoaderTest.php 这个测试类测试的是 Overtrue\Pinyin\GeneratorFileDictLoader 这个加载器。解释下这个加载器,因为拼音库是基于词库的,而词库非常大,在很多场景下内存中是不允许载入这么多的数据的。所以这个加载器利用 php5.5+的 Generator (生成器)特性来生成数据,而生成数据的代价就是需要大量的磁盘 IO 以及增加 >90% 的允许时间。(PHP 官方文档中有说明)。travis 认为构建失败原因:这个问题本身可能存在于 PHP 5.5 & 5.6 的文件系统(看 PHP 改动日志是有改动的)造成了假死,再加上 travis 本身 IO 能力比较低。所以造成生成器同时打开多个文件流之后就假死了。
如何修复#
额~我是来搞笑的。。。。并不知道如何解决构建失败的问题,这个问题我曾经 fork 超哥的库该代码,也并没有找到好的解决方法。可能删除这种「生成器」加载器会好吧其实我特地发这篇文章,是想让超哥看到,研究下怎么让构建跑通!TS+预售活动了解:http://www.thinksns.com/reader/68.htmlTS+安装部署:http://www.thinksns.com/reader/100.html相关文章推荐
- 关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error
- 社交系统ThinkSNS+ alpha.2 版本发布,快来看看都有些什么【研发日记六】
- 【社交系统ThinkSNS+研发日记】Laravel Model 利用 Macroable 为数据模型添加宏能
- 【社交系统研发日记】如何在 Laravel 中 “规范” 的开发验证码发送功能 !
- 不使用三方包时,如何在社交系统ThinkSNS中建立优雅的用户权限管理【研发日记13】
- 社交系统ThinkSNS+研发日记四:如何做到 Laravel 配置可以网站后台配置
- 【社交系统ThinkSNS研发日记十二】Laravel Model 利用 Macroable 为数据模型添加宏能力
- 社交系统ThinkSNS+软件系统研发日记 2月(上)
- ThinkSNS+社交软件系统研发日记 2月(上)
- 如何在 Laravel 中 “规范” 的开发验证码发送功能【社交系统ThinkSNS研发日记十一】
- ThinkSNS+如何计算字符显示长度?【社交系统研发日记五】
- 【社交系统ThinkSNS+研发日记】基于 Laravel Route 的 ThinkSNS+ Component
- 不使用三方包时,如何在社交系统ThinkSNS中建立优雅的用户权限管理【研发日记13】
- ERROR: Removing 'hello': Device or resource busy //关于使用系统定义的模块加载和卸载函数
- 知识管理系统Data Solution研发日记之十六 保存服务器文档为本机PDF格式
- 知识管理系统Data Solution研发日记之十二 网页数据抓取Fetch,呈现Render,导出Export
- 关于请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。系统X64 IIS找不到 将“启动32位应用程序”改为“true”
- 关于Error in PL/SQL block to clean upleftover entries for SDE instance ORA-06508....
- 知识管理系统Data Solution研发日记之三 文档解决方案
- 关于系统参数:vm.overcommit_memory 和 vm.overcommit_ratio;