摘要:重大新特性支持從版本開始支持了對原生協(xié)程化的支持??墒褂脤⑵胀ǖ耐阶枞僮髯?yōu)閰f(xié)程調(diào)度的異步非阻塞協(xié)程跟蹤新版本增加了兩個方法用于跟蹤協(xié)程運行。
重大新特性 支持 Redis/PDO/MySQLi
從4.1.0版本開始支持了對PHP原生Redis、PDO、MySQLi協(xié)程化的支持。
可使用SwooleRuntime::enableCorotuine()將普通的同步阻塞Redis、PDO、MySQLi操作變?yōu)閰f(xié)程調(diào)度的異步非阻塞IO
SwooleRuntime::enableCoroutine(); go(function () { $redis = new redis; $retval = $redis->connect("127.0.0.1", 6379); var_dump($retval, $redis->getLastError()); var_dump($redis->get("key")); var_dump($redis->set("key", "value")); $redis->close(); });協(xié)程跟蹤
新版本增加了兩個方法用于跟蹤協(xié)程運行。
Coroutine::listCoroutines()可遍歷當前所有協(xié)程
Coroutine::getBackTrace($cid)可獲取某個協(xié)程的函數(shù)調(diào)用棧
function test1() { test2(); } function test2() { while(true) { co::sleep(10); echo __FUNCTION__." "; } } $cid = go(function () { test1(); }); go(function () use ($cid) { while(true) { echo "BackTrace[$cid]: ----------------------------------------------- "; //返回數(shù)組,需要自行格式化輸出 var_dump(co::getBackTrace($cid))." "; co::sleep(3); } });
BackTrace[1]: ----------------------------------------------- #0 SwooleCoroutine::sleep(10) called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:8] #1 test2() called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:3] #2 test1() called at [/home/htf/workspace/swoole/examples/coroutine/backtrace.php:14]
重構 CoChannel C底層代碼為C++, 解決復雜場景的非預期結果, 實現(xiàn)高穩(wěn)定
重構 CoHttpClient C底層代碼為C++協(xié)程模式, 解決異步時序問題, 實現(xiàn)高穩(wěn)定
支持在協(xié)程和Server中使用exit, 此時將會拋出可捕獲的SwooleExitException異常
移除所有迭代器(table/connection/coroutine_list)的PCRE依賴限制
增加open_websocket_close_frame配置, 可以在onMessage事件中接收close幀
廢棄HttpResponse->gzip()方法,改為使用http_compression配置項。底層會自動判斷客戶端傳入的Accept-Encoding選擇合適的壓縮方法, 新增谷歌BR壓縮支持
增加CoHttpClient->addData()方法,可將內(nèi)存中的數(shù)據(jù)作為上傳文件內(nèi)容進行發(fā)送
Solaris系統(tǒng)支持
Http2支持MAX_FRAME_SIZE分幀發(fā)送和MAX_HEADER_LIST_SIZE處理, 客戶端增加isStreamExist方法檢測是否存在對應流
swoole_http_response->status增加reason參數(shù)
修復MySQL prepare 中無符號參數(shù)使用了有符號值導致數(shù)值溢出的問題
修復HTTP2的onRequest回調(diào)中沒有協(xié)程的問題
修復tasking_num某些特殊情況下變?yōu)?b>-1的問題
修復HTTP2-server的window-update幀構造錯誤
修復所有PHP版本下的所有級別的編譯warning
GCC版本小于4.8時將會產(chǎn)生編譯錯誤
修復MySQL使用prepare時未使用參數(shù)綁定導致的內(nèi)存分配不斷增長
修復HTTP2重連時舊stream內(nèi)存丟失泄露
底層開發(fā)相關統(tǒng)一文件命名 #970
CoHttpClient使用了create_obj和free_obj保證內(nèi)存安全, 防止錯誤的PHP代碼引發(fā)內(nèi)存問題
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29363.html
摘要:開發(fā)負責人創(chuàng)建分支,編寫單元測試腳本,編寫代碼,實現(xiàn)提案中的所有內(nèi)容,最終發(fā)起交叉評審,檢查代碼,提出改進意見,反饋給開發(fā)負責人,繼續(xù)完善細節(jié)。 Swoole開源項目從2012年開始發(fā)布第一個版本,到現(xiàn)在已經(jīng)有近7年的歷史。在這七年的時間里: 提交了8821次代碼變更 發(fā)布了287個版本 收到并解決1161次issue反饋 合并了603次pull request 共有100位開發(fā)者...
摘要:歷時年多緊鑼密鼓的開發(fā),以及愉快而忙碌的春節(jié)假期,期間數(shù)從到快破,碼云首頁推薦,作者和社區(qū)的大力支持,正式版終于要和大家見面。此次更新新增了大量特性在易用性代碼復用性能方面都有所提升。可以用于構建高性能的系統(tǒng)中間件基礎服務等等。 歷時 1 年多緊鑼密鼓的開發(fā),以及愉快而忙碌的春節(jié)假期,期間 github star 數(shù)從 500 到快破 1k,碼云首頁推薦,Swoole作者 Rango ...
摘要:是一個非常流行的的客戶端,現(xiàn)在各大廠的也都開始基于開發(fā),因為只支持的協(xié)程,而默認是使用擴展的,所以開發(fā)了,能在不修改源碼的情況下讓協(xié)程化。 Guzzle 是一個非常流行的 PHP 的 HTTP 客戶端,現(xiàn)在各大廠的 SDK 也都開始基于 Guzzle 開發(fā),因為 Swoole 只支持 PHP Stream 的協(xié)程 Hook ,而 Guzzle 默認是使用 cURL 擴展的,所以 Mix...
摘要:前些時間我們發(fā)布了實例協(xié)程池異步郵件發(fā)送守護程序范例,這一次我們提供一個使用大廠通過協(xié)程化來并行執(zhí)行短信發(fā)送任務,本文是一個代碼簡單性能極強的范例。 前些時間我們發(fā)布了 Mix PHP V2 實例:協(xié)程池異步郵件發(fā)送守護程序 范例,這一次我們提供一個使用大廠 SDK 通過 Swoole Hook 協(xié)程化來并行執(zhí)行短信發(fā)送任務,本文是一個代碼簡單、IO 性能極強的范例。 請先升級到 m...
摘要:的異步并行高性能網(wǎng)絡通信引擎已發(fā)布版本。新版本提供了全新的短名,完整支持了協(xié)程通道特性,為語言帶來了全新的編程模式。的借鑒至語言,在此向語言開發(fā)組致敬。其他服務器端提供了很多共個支持協(xié)程的類,可以在這些服務器程序中使用協(xié)程。 PHP的異步、并行、高性能網(wǎng)絡通信引擎 Swoole 已發(fā)布 2.1.0 版本。新版本提供了全新的短名 API,完整支持了協(xié)程(Coroutine)+通道(Cha...
閱讀 639·2021-08-17 10:15
閱讀 1717·2021-07-30 14:57
閱讀 1976·2019-08-30 15:55
閱讀 2815·2019-08-30 15:55
閱讀 2707·2019-08-30 15:44
閱讀 669·2019-08-30 14:13
閱讀 2384·2019-08-30 13:55
閱讀 2590·2019-08-26 13:56