成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Swoole 1.10.0 發(fā)布,增加多項新特性

Yuqi / 1280人閱讀

摘要:的異步并行高性能網(wǎng)絡通信引擎已發(fā)布版本。此版本增加了多項新特性。復雜的線上項目使用模式,請求分配調(diào)度的效率更高。方便使用或類框架實現(xiàn)自己的調(diào)度器。

PHP的異步、并行、高性能網(wǎng)絡通信引擎 Swoole 已發(fā)布 1.10.0 版本。此版本增加了多項新特性。

自動 DNS 解析

新版本的異步客戶端不再需要使用 swoole_async_dns_lookup 解析域名了,底層實現(xiàn)了自動域名解析。Client 在執(zhí)行 connect 方法時可直接傳入域名。

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function(swoole_client $cli) {
    $cli->send("GET / HTTP/1.1

");
});
$client->on("receive", function(swoole_client $cli, $data){
    echo "Receive: $data";
    $cli->send(str_repeat("A", 100)."
");
    sleep(1);
});
$client->on("error", function(swoole_client $cli){
    echo "error
";
});
$client->on("close", function(swoole_client $cli){
    echo "Connection close
";
});
//底層會自動進行異步域名解析
$client->connect("www.baidu.com", 9501);
慢請求日志

新版本增加了追蹤慢請求功能,可記錄慢請求的 PHP 函數(shù)調(diào)用棧。

function test()
{
    test_sleep();
}

function test_sleep()
{
    echo "sleep 5
";
    sleep(5);
}

$server = new swoole_server("127.0.0.1", 9501);

$server->set([
    "worker_num" => 1,
    "task_worker_num" => 1,
    "trace_event_worker" => true,
    "request_slowlog_timeout" => 1,
    "request_slowlog_file" => "/tmp/trace.log",
]);

$server->on("Receive", function($serv, $fd, $reactor_id, $data) {
    test();
    $serv->send($fd, "Swoole: $data");
});

$server->start();

處理慢請求后,/tmp/trace.log日志中將打印一行錯誤信息:

[08-Jan-2018 15:21:57]  [worker#0] pid 26905
[0x00007f60cda22340] sleep() /home/htf/workspace/swoole/examples/server/trace.php:10
[0x00007f60cda222e0] test_sleep() /home/htf/workspace/swoole/examples/server/trace.php:4
[0x00007f60cda22280] test() /home/htf/workspace/swoole/examples/server/trace.php:28
[0x00007f60cda22190] {closure}() /home/htf/workspace/swoole/examples/server/trace.php:42
[0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42
新增 STREAM 模塊

新增的 stream 模塊使得 Reactor、Worker、Task 進程之間的通信方式更靈活,最大程度地解耦。復雜的線上項目使用 stream 模式,請求分配調(diào)度的效率更高。

$serv = new swoole_server("127.0.0.1", 9501);

$serv->set(array(
    "dispatch_mode" => 7,
    "worker_num" => 2,
));

$serv->on("receive", function (swoole_server $serv, $fd, $threadId, $data)
{
    var_dump($data);
    echo "#{$serv->worker_id}>> received length=" . strlen($data) . "
";
});

$serv->start();

ReactorWorker 之間通信,使用 dispatch_mode = 7 來開啟

WorkerTask 之間通信,使用 task_ipc_mode = 4 來開啟

增加 Event::cycle 函數(shù)

用戶代碼可自定義一個 EventLoop 的鉤子函數(shù),此函數(shù)會在每一輪事件循環(huán)結(jié)束時調(diào)用。方便使用 Generator + YieldPromiseSwoole 框架實現(xiàn)自己的調(diào)度器。

SwooleTimer::tick(2000, function ($id) {
    var_dump($id);
});

SwooleEvent::cycle(function () {
    echo "hello [1]
";
    SwooleEvent::cycle(function () {
        echo "hello [2]
";
        SwooleEvent::cycle(null);
    });
});
其他更新內(nèi)容

更新Table::incrTable::decr支持有符號整型

兼容PHP-7.2版本

修復Event::del函數(shù)無法移除標準輸入句柄的問題

修復Task進程內(nèi)定時器間隔小于Client接收超時時間,引起Client::recv死鎖的問題

增加ssl_host_name配置項,用于驗證SSL/TLS主機合法性

使用dispatch_mode = 3時,當所有Worker為忙的狀態(tài)時打印一條錯誤日志

增加端口迭代器,可遍歷某個監(jiān)聽端口的所有連接

修復Table在非x86平臺存在的內(nèi)存對齊問題

修復BASE模式下max_request配置無效的問題

修復WebSocket服務器在某些客戶端ping幀帶有mask數(shù)據(jù)時回包錯誤的問題

修復HttpClient使用HEAD方法響應內(nèi)容攜帶Content-Length導致卡死的問題

增加MySQL異步客戶端對JSON格式的支持

下載地址

GITHUB:https://github.com/swoole/swo...

開源中國:https://gitee.com/swoole/swoo...

PECL:https://pecl.php.net/package/...

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26294.html

相關文章

  • Swoole筆記(一)

    摘要:修復添加超過萬個以上定時器時發(fā)生崩潰的問題增加模塊,下高性能序列化庫修復監(jiān)聽端口設置無效的問題等。線程來處理網(wǎng)絡事件輪詢,讀取數(shù)據(jù)。當?shù)娜挝帐殖晒α艘院?,由這個線程將連接成功的消息告訴進程,再由進程轉(zhuǎn)交給進程。此時進程觸發(fā)事件。 本文示例代碼詳見:https://github.com/52fhy/swoo...。 簡介 Swoole是一個PHP擴展,提供了PHP語言的異步多線程服務器...

    SHERlocked93 評論0 收藏0
  • imi v1.0 正式版,專注單體應用的 PHP 協(xié)程應用開發(fā)框架

    摘要:年開發(fā)并發(fā)布框架現(xiàn)已停止維護。經(jīng)過一年實戰(zhàn),年月日,一周年之際正式發(fā)布版本。宇潤部分開源項目我已通過碼云平臺,向項目力所能及地捐款,聊表心意。所以,目前主打的還是單體應用開發(fā)。協(xié)議的開發(fā),也是帶來的一大優(yōu)勢。 imi 介紹 showImg(https://segmentfault.com/img/bVbuab9?w=291&h=187); imi 是基于 PHP 協(xié)程應用開發(fā)框架,它支...

    genefy 評論0 收藏0
  • Swoole 2019 :化繁為簡、破繭成蝶

    摘要:開發(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ā)者...

    adam1q84 評論0 收藏0
  • 云幫社區(qū)版 11 月升級,新13項特性,支持Web,MySQL實時性能分析

    摘要:項新特性個中等級別以上的修復篇文檔更新云幫社區(qū)版迎來年月更新檔。研發(fā)團隊在這一個月中新增了項新特性,修復了個中等級別以上的,并更新了篇維護文檔。本月版本發(fā)布支持支持,協(xié)議的性能分析,后續(xù)還會添加等協(xié)議的支持。 13 項新特性、18 個中等級別以上的bug修復、12篇文檔更新、云幫社區(qū)版 迎來2016年11月更新檔。 Cloudbang(云幫) 云幫是好雨科技研發(fā)的一款基于容器技術的應用...

    Donne 評論0 收藏0

發(fā)表評論

0條評論

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