Swoole 1 10 0 發布,增加多項新特性

2021-09-14 03:33:14 字數 2427 閱讀 1366

php的非同步、並行、高效能網路通訊引擎swoole已發布1.10.0版本。此版本增加了多項新特性。

新版本的非同步客戶端不再需要使用swoole_async_dns_lookup解析網域名稱了,底層實現了自動網域名稱解析。client在執行connect方法時可直接傳入網域名稱。

$client = new swoole_client(swoole_sock_tcp, swoole_sock_async);

$client->on("connect", function(swoole_client $cli) );

$client->on("receive", function(swoole_client $cli, $data));

$client->on("error", function(swoole_client $cli));

$client->on("close", function(swoole_client $cli));

//底層會自動進行非同步網域名稱解析

$client->connect('www.baidu.com', 9501);

新版本增加了追蹤慢請求功能,可記錄慢請求的php函式呼叫棧。

function test()

function test_sleep()

$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) );

$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] () /home/htf/workspace/swoole/examples/server/trace.php:42

[0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42

新增的stream模組使得reactorworkertask程序之間的通訊方式更靈活,最大程度地解耦。複雜的線上專案使用stream模式,請求分配排程的效率更高。

$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)

>> received length=" . strlen($data) . "\n";

});$serv->start();

使用者**可自定義乙個eventloop的鉤子函式,此函式會在每一輪事件迴圈結束時呼叫。方便使用generator + yieldpromiseswoole框架實現自己的排程器。

swoole\timer::tick(2000, function ($id) );

swoole\event::cycle(function () );

});

TypeScript 2 5 發布,增加語言級重構

在 typescript 2.5 版本中,microsoft 專注於提高開發人員的生產力,其範圍已經超出了 編輯器所提供的常見功能。u0026 xd u0026 xd u0026 xd typescript 是基於編輯經驗開發的一種語言,因此我們團隊在編輯器 型別檢查器以及支援編輯器 如 vs co...

TypeScript 2 5 發布,增加語言級重構

在 typescript 2.5 版本中,microsoft 專注於提高開發人員的生產力,其範圍已經超出了 編輯器所提供的常見功能。typescript 是基於編輯經驗開發的一種語言,因此我們團隊在編輯器 型別檢查器以及支援編輯器 如 vs code 的語言服務方面投入了精力。它不僅僅是 vs 和 ...

TypeScript 2 5 發布,增加語言級重構

在 typescript 2.5 版本中,microsoft 專注於提高開發人員的生產力,其範圍已經超出了 編輯器所提供的常見功能。typescript 是基於編輯經驗開發的一種語言,因此我們團隊在編輯器 型別檢查器以及支援編輯器 如 vs code 的語言服務方面投入了精力。它不僅僅是 vs 和 ...