PHP の非同期操作
早速本題に入りましょう:
アプリケーション シナリオ:
情報の送信、電子メールの送信、ログの記録などがよく使われます。ビジネス ロジックでは、現時点では非同期を使用するのが最善です。ユーザーの直接の体験は次のとおりです: 非常にスムーズに使用できます~~
使用テクノロジー:
1. gearman: これは PHP だけでなく他の言語もサポートしています。
2.swoole: PHP 拡張機能があり、これを使用すると便利です
注: Gearman = swoole + 非同期キューのように感じます
違い:
1. Gearman には送信されたデータを保存するために特別に使用されるキュー 非同期リクエストの場合、ワーカーがハングアップした場合でも、未処理のリクエストは再起動後に引き続き処理できます。swoole にはこの点に関する特別な処理がありません。
2. swoole の使用とインストールがより便利です。 、C言語で書かれたPHP拡張機能を使用して、パフォーマンスをテストしましたが、これまでのところ問題はありません。gearmanのインストールは非常に面倒で、インターネット上にたくさんの記事があります。
3. Gearman には長い歴史があり、豊富な使用シナリオと詳細なドキュメントがあり、ビジネス量がそれほど多くない場合は非常に安定しています。 Swoole は中国人によって開発され (国内生産をサポート)、多くの大企業で使用されています。
Gearman インストールの詳細ドキュメント:
yum -y install libgearmanyum install libgearman-develwget http://pecl.php.net/get/gearman-1.1.2.tgztar -zxvf gearman-1.1.2.tgzcd gearman-1.1.2/data/apps/php/bin/phpize./configure --prefix=/data/apps/phpgearman --with-php-config=/data/apps/php/bin/php-configmake&& make installvim /data/apps/php/etc/php.ini增加extension=gearman.so测试vim worker.php <?php$worker= new GearmanWorker();$worker->addServer();$worker->addFunction("reverse", "my_reverse_function");while ($worker->work());function my_reverse_function($job){ return strrev($job->workload());}?>vim client.php<?php$client= new GearmanClient();$client->addServer();print $client->do("reverse", "Hello World!");?>php client.php!dlroW olleH
swoole PHP 拡張機能のインストール:
wget http://pecl.php.net/get/swoole-1.7.17.tgztar -zxvf swoole-1.7.17.tgzcd swoole-1.7.17phpize./configuremake && make install