国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Swoole 4.1.0 正式版發布,支持原生 Redis/PDO/MySQLi 協程化

chuyao / 818人閱讀

摘要:重大新特性支持從版本開始支持了對原生協程化的支持??墒褂脤⑵胀ǖ耐阶枞僮髯優閰f程調度的異步非阻塞協程跟蹤新版本增加了兩個方法用于跟蹤協程運行。

重大新特性 支持 Redis/PDO/MySQLi

4.1.0版本開始支持了對PHP原生Redis、PDOMySQLi協程化的支持。

可使用SwooleRuntime::enableCorotuine()將普通的同步阻塞Redis、PDOMySQLi操作變為協程調度的異步非阻塞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();
});
協程跟蹤

新版本增加了兩個方法用于跟蹤協程運行。

Coroutine::listCoroutines()可遍歷當前所有協程

Coroutine::getBackTrace($cid)可獲取某個協程的函數調用棧

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]:
-----------------------------------------------
";
        //返回數組,需要自行格式化輸出
        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++, 解決復雜場景的非預期結果, 實現高穩定

重構 CoHttpClient C底層代碼為C++協程模式, 解決異步時序問題, 實現高穩定

支持在協程和Server中使用exit, 此時將會拋出可捕獲的SwooleExitException異常

移除所有迭代器(table/connection/coroutine_list)的PCRE依賴限制

增加open_websocket_close_frame配置, 可以在onMessage事件中接收close幀

廢棄HttpResponse->gzip()方法,改為使用http_compression配置項。底層會自動判斷客戶端傳入的Accept-Encoding選擇合適的壓縮方法, 新增谷歌BR壓縮支持

增加CoHttpClient->addData()方法,可將內存中的數據作為上傳文件內容進行發送

Solaris系統支持

Http2支持MAX_FRAME_SIZE分幀發送和MAX_HEADER_LIST_SIZE處理, 客戶端增加isStreamExist方法檢測是否存在對應流

swoole_http_response->status增加reason參數

修復MySQL prepare 中無符號參數使用了有符號值導致數值溢出的問題

修復HTTP2的onRequest回調中沒有協程的問題

修復tasking_num某些特殊情況下變為-1的問題

修復HTTP2-server的window-update幀構造錯誤

修復所有PHP版本下的所有級別的編譯warning

GCC版本小于4.8時將會產生編譯錯誤

修復MySQL使用prepare時未使用參數綁定導致的內存分配不斷增長

修復HTTP2重連時舊stream內存丟失泄露

底層開發相關

統一文件命名 #970

CoHttpClient使用了create_objfree_obj保證內存安全, 防止錯誤的PHP代碼引發內存問題

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29363.html

相關文章

  • Swoole 2019 :化繁為簡、破繭成蝶

    摘要:開發負責人創建分支,編寫單元測試腳本,編寫代碼,實現提案中的所有內容,最終發起交叉評審,檢查代碼,提出改進意見,反饋給開發負責人,繼續完善細節。 Swoole開源項目從2012年開始發布第一個版本,到現在已經有近7年的歷史。在這七年的時間里: 提交了8821次代碼變更 發布了287個版本 收到并解決1161次issue反饋 合并了603次pull request 共有100位開發者...

    adam1q84 評論0 收藏0
  • Swoft 框架 1.0 正式來襲,首個基于 Swoole 原生協程的 PHP 框架

    摘要:歷時年多緊鑼密鼓的開發,以及愉快而忙碌的春節假期,期間數從到快破,碼云首頁推薦,作者和社區的大力支持,正式版終于要和大家見面。此次更新新增了大量特性在易用性代碼復用性能方面都有所提升??梢杂糜跇嫿ǜ咝阅艿南到y中間件基礎服務等等。 歷時 1 年多緊鑼密鼓的開發,以及愉快而忙碌的春節假期,期間 github star 數從 500 到快破 1k,碼云首頁推薦,Swoole作者 Rango ...

    weij 評論0 收藏0
  • Mix PHP V2 生態:讓 Guzzle 支持 Swoole 的 Hook 協程

    摘要:是一個非常流行的的客戶端,現在各大廠的也都開始基于開發,因為只支持的協程,而默認是使用擴展的,所以開發了,能在不修改源碼的情況下讓協程化。 Guzzle 是一個非常流行的 PHP 的 HTTP 客戶端,現在各大廠的 SDK 也都開始基于 Guzzle 開發,因為 Swoole 只支持 PHP Stream 的協程 Hook ,而 Guzzle 默認是使用 cURL 擴展的,所以 Mix...

    Flands 評論0 收藏0
  • Mix PHP V2 實例:AliCloud 短信協程池異步發送守護程序

    摘要:前些時間我們發布了實例協程池異步郵件發送守護程序范例,這一次我們提供一個使用大廠通過協程化來并行執行短信發送任務,本文是一個代碼簡單性能極強的范例。 前些時間我們發布了 Mix PHP V2 實例:協程池異步郵件發送守護程序 范例,這一次我們提供一個使用大廠 SDK 通過 Swoole Hook 協程化來并行執行短信發送任務,本文是一個代碼簡單、IO 性能極強的范例。 請先升級到 m...

    qc1iu 評論0 收藏0
  • Swoole 2.1 式版發布協程+通道帶來全新的 PHP 編程模式

    摘要:的異步并行高性能網絡通信引擎已發布版本。新版本提供了全新的短名,完整支持了協程通道特性,為語言帶來了全新的編程模式。的借鑒至語言,在此向語言開發組致敬。其他服務器端提供了很多共個支持協程的類,可以在這些服務器程序中使用協程。 PHP的異步、并行、高性能網絡通信引擎 Swoole 已發布 2.1.0 版本。新版本提供了全新的短名 API,完整支持了協程(Coroutine)+通道(Cha...

    seanHai 評論0 收藏0

發表評論

0條評論

chuyao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<