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
模組使得reactor
、worker
、task
程序之間的通訊方式更靈活,最大程度地解耦。複雜的線上專案使用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 + yield
或promise
類swoole
框架實現自己的排程器。
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 和 ...