您好,登錄后才能下訂單哦!
什么是ThinkSNS ?
ThinkSNS(簡稱TS),一款全平臺綜合性社交系統,為國內外大中小企業和創業者提供社會化軟件研發及技術解決方案。
1.png
這是 https://github.com/overtrue/pinyin 首頁 README 中的持續集成狀態。
之前有朋友問我,這個 travis 狀態時 error 能用么?肯定是能用,我們來看下 travis 上什么地方錯誤了:
2.png
已經顯示出來了,其中單元測試失敗的是 php 5.5 和 php 5.6 我們隨便點擊一個進去看看
3.png
超過 10m 沒有收到輸出,所以 travis 認為構建是有問題的。其實吧~確實有問題,個人也苦惱了很久,沒有收到輸出的構建是 tests/GeneratorFileDictLoaderTest.php 這個測試類測試的是 Overtrue\Pinyin\GeneratorFileDictLoader 這個加載器。
解釋下這個加載器,因為拼音庫是基于詞庫的,而詞庫非常大,在很多場景下內存中是不允許載入這么多的數據的。所以這個加載器利用 php5.5+ 的 Generator (生成器)特性來生成數據,而生成數據的代價就是需要大量的磁盤 IO 以及增加 >90% 的允許時間。(PHP 官方文檔中有說明)。
travis 認為構建失敗原因:這個問題本身可能存在于 PHP 5.5 & 5.6 的文件系統(看 PHP 改動日志是有改動的)造成了假死,再加上 travis 本身 IO 能力比較低。所以造成生成器同時打開多個文件流之后就假死了。
如何修復
額~我是來搞笑的。。。。并不知道如何解決構建失敗的問題,這個問題我曾經 fork 超哥的庫該代碼,也并沒有找到好的解決方法。
可能刪除這種「生成器」加載器會好吧
其實我特地發這篇文章,是想讓超哥看到,研究下怎么讓構建跑通
往期研發日記傳送門:
《ThinkSNS+基于?Laravel master?分支【研發日記一】》
《ThinkSNS+研發中前端的抉擇(webpack/Vue)踩坑日記【研發日記二】》
《基于?Laravel Route?的?ThinkSNS+ Component【研發日記三】》
《如何做到?Laravel?配置可以網站后臺配置【研發日記四】》
《ThinkSNS+?如何計算字符顯示長度【研發日記五】》
《基于?Laravel?的?ThinkSNS+ alpha.2?版本發布【研發日記六】》
《聊聊 Laravel 5.5 的 「自動發現」和此刻心情【研發日記七】》
《繼:我朝特有需求之--英文字符占 0.5 個,中文字符占 1 個【研發日記八】》
《利用?Docker 包 Laradock 服務器部署 Laravel & ThinkSNS+ 等程序實戰(多項目)【研發日記九】》
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。