ホームページ バックエンド開発 PHPチュートリアル Swoole 1.10.0 の新バージョンがリリースされ、多くの新機能分析が追加されました

Swoole 1.10.0 の新バージョンがリリースされ、多くの新機能分析が追加されました

Jul 02, 2018 pm 05:58 PM
swoole バージョン

Swoole 1.10.0 バージョンが最近リリースされ、多くの新機能が追加されましたので、次の記事では主に Swoole 1.10.0 バージョンの新機能に関する関連情報を紹介し、参考と学習のために共有します。以下へ

#まえがき#Swoole は、インターネット、モバイル通信、エンタープライズ ソフトウェア、クラウド コンピューティング、オンライン ゲームなどで広く使用できます。モノのインターネット(IOT)、車両のインターネット、スマートホームなどの分野。 PHP Swoole をネットワーク通信フレームワークとして使用すると、企業の IT 研究開発チームの効率が大幅に向上し、革新的な製品の開発にさらに集中できます。最近、PHP の非同期、並列、高性能ネットワーク通信エンジン Swoole のバージョン 1.10.0 がリリースされました。このバージョンでは、いくつかの新機能が追加されています。以下では多くを語る必要はありません。詳細な紹介を見てみましょう。

自動 DNS 解決
非同期クライアントの新しいバージョンでは、ドメイン名を解決するために swoole_async_dns_lookup を使用する必要がなくなりました。最下層は自動ドメイン名解析を実装します。クライアントは、connect メソッドの実行時にドメイン名を直接渡すことができます。

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function(swoole_client $cli) {
 $cli->send("GET / HTTP/1.1\r\n\r\n");
});
$client->on("receive", function(swoole_client $cli, $data){
 echo "Receive: $data";
 $cli->send(str_repeat('A', 100)."\n");
 sleep(1);
});
$client->on("error", function(swoole_client $cli){
 echo "error\n";
});
$client->on("close", function(swoole_client $cli){
 echo "Connection close\n";
});
//底层会自动进行异步域名解析
$client->connect('www.baidu.com', 9501);
ログイン後にコピー

遅いリクエストのログ
新しいバージョンでは、遅いリクエストの追跡が追加されていますリクエスト 遅いリクエストの PHP 関数呼び出しスタックを記録できる関数。

function test()
{
 test_sleep();
}
function test_sleep()
{
 echo "sleep 5\n";
 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
ログイン後にコピー

#新しいストリーム モジュール

##新しいストリーム モジュールは、Reactor、Worker、Task 間の通信を行います。プロセスがより便利になり、柔軟で最大限のデカップリングが可能になります。複雑なオンライン プロジェクトでは、ストリーム モードを使用して、リクエストの割り当てとスケジュールをより効率的にします。

$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) . "\n";
});
$serv->start();
ログイン後にコピー

Reactor と Worker の間の通信、dispatch_mode = 7 を使用して通信を有効にします

  • Worker と Task の間で、task_ipc_mode = 4 を使用して

  • #Add Event::cycle function

## を有効にしますユーザー コードは、イベント ループの各ラウンドの終了時に呼び出される EventLoop フック関数をカスタマイズできます。独自のスケジューラを実装するには、Generator Yield または Promise クラスの Swoole フレームワークを使用すると便利です。

Swoole\Timer::tick(2000, function ($id) {
 var_dump($id);
});
Swoole\Event::cycle(function () {
 echo "hello [1]\n";
 Swoole\Event::cycle(function () {
 echo "hello [2]\n";
 Swoole\Event::cycle(null);
 });
});
ログイン後にコピー

その他の更新

テーブルを更新::incr と Table::decr は符号付き整数をサポートしました

  • PHP-7.2 バージョンと互換性がありました

  • Event::del 関数がサポートされないことを修正しました標準入力ハンドル削除の問題

  • タスクプロセスのタイマー間隔がクライアント受信タイムアウト未満となり、Client::recvデッドロックが発生する問題を修正しました

  • ssl_host_name 構成項目を追加して、SSL/TLS ホストの正当性を検証します

  • dispatch_mode = 3 を使用すると、すべてのワーカーがビジー状態になるとエラー ログが出力されます

  • リスニング ポートのすべての接続をトラバースするポート イテレータを追加します

  • 非 x86 プラットフォームでのテーブルのメモリ アライメントの問題を修正します

  • BASE モードでの無効な max_request 構成の問題を修正

  • ##一部のクライアント ping フレームにマスク データが含まれている場合に、WebSocket サーバーが間違ったパケットを返す問題を修正
  • HttpClient が HEAD メソッドを使用して Content-Length で応答し、スタックする問題を修正します。
  • MySQL 非同期クライアントのサポートを強化します。 JSON 形式の場合
  • ダウンロード アドレス

GITHUB: https://github.com/swoole/ swoole-src/ releases/tag/v1.10.0オープンソース中国: https://gitee.com/swoole/swoole/tree/v1.10.0/
PECL: https:/ /pecl.php.net/package/swoole/1.10.0

ローカル ダウンロード: http://xiazai.jb51.net/201801/yuanma/swoole-src-1.10.0(jb51.net)。 rar

概要

興味があるかもしれない記事:

PHP 実装右回り印刷マトリックス (スパイラル マトリックス) メソッドの例の説明

バイナリ ツリーが対称かどうかを判断する PHP の実装方法

PHP では 1 行のコードを使用します。 ディレクトリ内のすべてのファイルを削除する方法の例


#

以上がSwoole 1.10.0 の新バージョンがリリースされ、多くの新機能分析が追加されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

numpyのバージョンを簡単に確認する方法 numpyのバージョンを簡単に確認する方法 Jan 19, 2024 am 08:23 AM

Numpy は Python の重要な数学ライブラリであり、効率的な配列演算と科学技術計算機能を提供し、データ分析、機械学習、深層学習などの分野で広く使用されています。 numpy を使用する場合、多くの場合、現在の環境でサポートされている機能を確認するために numpy のバージョン番号を確認する必要があります。この記事では、numpyのバージョンを簡単に確認する方法と具体的なコード例を紹介します。方法 1: numpy に付属の __version__ 属性を使用する numpy モジュールには __ が付属しています

Mavenのバージョンを確認する方法 Mavenのバージョンを確認する方法 Jan 17, 2024 pm 05:06 PM

Maven バージョンを確認する方法: 1. コマンド ラインを使用する; 2. 環境変数を確認する; 3. IDE を使用する; 4. pom.xml ファイルを確認する。詳細な紹介: 1. コマンド ラインを使用して、コマンド ラインに「mvn -v」または「mvn --version」と入力し、Enter キーを押します。これにより、Maven バージョン情報と Java バージョン情報が表示されます。 2. 環境を表示します。変数 、一部のシステムでは、環境変数をチェックして Maven のバージョン情報を確認し、コマンド ラインにコマンドを入力して Enter キーなどを押すことができます。

Linux での CURL バージョンの更新に関するチュートリアル! Linux での CURL バージョンの更新に関するチュートリアル! Mar 07, 2024 am 08:30 AM

Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

インストールされている Oracle のバージョンを簡単に確認する方法 インストールされている Oracle のバージョンを簡単に確認する方法 Mar 07, 2024 am 11:27 AM

インストールされている Oracle のバージョンを簡単に確認するには、具体的なコード例が必要です。Oracle データベースは、エンタープライズ レベルのデータベース管理システムで広く使用されているソフトウェアとして、多くのバージョンとさまざまなインストール方法があります。私たちは日々の業務で、対応する運用やメンテナンスのために、インストールされている Oracle データベースのバージョンを確認する必要があることがよくあります。この記事では、インストールされているOracleのバージョンを簡単に確認する方法と具体的なコード例を紹介します。方法 1: Oracle データベースの SQL クエリを通じて、次のことができます。

Kirin オペレーティング システムのバージョンとカーネルのバージョンを確認する Kirin オペレーティング システムのバージョンとカーネルのバージョンを確認する Feb 21, 2024 pm 07:04 PM

Kylin オペレーティング システムのバージョンとカーネル バージョンの確認 Kirin オペレーティング システムでは、システム バージョンとカーネル バージョンを確認する方法を知ることが、システム管理とメンテナンスの基礎となります。 Kylin オペレーティング システムのバージョンを確認する方法 1: /etc/.kyinfo ファイルを使用する Kylin オペレーティング システムのバージョンを確認するには、/etc/.kyinfo ファイルを確認します。このファイルには、オペレーティング システムのバージョン情報が含まれています。次のコマンドを実行します: cat/etc/.kyinfo このコマンドは、オペレーティング システムの詳細なバージョン情報を表示します。方法 2: /etc/issue ファイルを使用する オペレーティング システムのバージョンを確認するもう 1 つの方法は、/etc/issue ファイルを参照することです。このファイルにはバージョン情報も含まれていますが、.kyinfo ファイルほど優れていない可能性があります。

大型モデル間の1対1バトル75万ラウンド、GPT-4が優勝、Llama 3が5位にランクイン 大型モデル間の1対1バトル75万ラウンド、GPT-4が優勝、Llama 3が5位にランクイン Apr 23, 2024 pm 03:28 PM

Llama3 に関しては、新しいテスト結果が発表されました。大規模モデル評価コミュニティ LMSYS は、Llama3 が 5 位にランクされ、英語カテゴリでは GPT-4 と同率 1 位にランクされました。このリストは他のベンチマークとは異なり、モデル間の 1 対 1 の戦いに基づいており、ネットワーク全体の評価者が独自の提案とスコアを作成します。最終的に、Llama3 がリストの 5 位にランクされ、GPT-4 と Claude3 Super Cup Opus の 3 つの異なるバージョンが続きました。英国のシングルリストでは、Llama3 がクロードを追い抜き、GPT-4 と並びました。この結果について、Meta の主任科学者 LeCun 氏は非常に喜び、リツイートし、

pip バージョンを更新する簡単な手順: 1 分で完了します pip バージョンを更新する簡単な手順: 1 分で完了します Jan 27, 2024 am 09:45 AM

1 分で完了: pip バージョンを更新する方法、具体的なコード例が必要です Python の急速な発展に伴い、pip は Python パッケージ管理の標準ツールになりました。ただし、時間の経過とともに、pip バージョンは常に更新されるため、最新の機能を使用し、潜在的なセキュリティ脆弱性を修正できるようにするには、pip バージョンを更新することが非常に重要です。この記事では、pip を 1 分で素早く更新する方法と具体的なコード例を説明します。まず、コマンド ライン ウィンドウを開く必要があります。 Windows システムでは、次のように使用できます。

dp インターフェイスが 1.2 か 1.4 かを確認するにはどうすればよいですか? dp インターフェイスが 1.2 か 1.4 かを確認するにはどうすればよいですか? Feb 06, 2024 am 10:27 AM

DP インターフェースはコンピューターの重要なインターフェース ケーブルです。コンピューターを使用するときに、多くのユーザーは DP インターフェースが 1.2 か 1.4 かを確認する方法を知りたいと考えています。実際には、GPU-Z で確認するだけで済みます。 dp インターフェイスが 1.2 か 1.4 かを判断する方法: 1. まず、GPU-Z で「アドバンス」を選択します。 2. 「詳細」の「全般」の「Monitor1」を見ると、「LinkRate (current)」と「Lane (current)」の 2 つの項目が表示されます。 3. 最後に 8.1Gbps×4 と表示されていれば DP1.3 以降のバージョン、通常は DP1.4 を意味し、5.4Gbps×4 であれば、

See all articles