公式には、
$swoole->reload() または \swoole_process::kill( $ master_pid、SIGUSR1)、または直接 kill -USR1 master_pid など。
推奨学習: swoole ビデオ チュートリアル
簡単なテスト
swoole_http_server を開きます。ワーカー プロセスとタスカー プロセスの両方が1 次に、ブラウザは http リクエストを開始します。リクエストの内容は単純なスリープです。スリープ機能を通じて、このリクエストを処理しているワーカーが作業状態にあることを示し、その間にリロード操作を実行できる必要があります。睡眠期間。
初めて swoole サーバーに対してリクエストが開始されると、マネージャー プロセスはワーカーへのリクエストの処理をスケジュールします。その後、ワーカーの処理のスリープ期間中に別のリクエストが受信されると、ワーカー プロセスはまだ最初のリクエストの処理でビジー状態であるため、このリクエストは唯一のワーカー プロセスにスケジュールされます。これは簡単なテストで確認できます。
http リクエストは単純に以下にルーティングされます。 easyswoole フレームワークが使用されているため、php easyswoole reload all コマンドを実行すると、実際には kill -USR1 master_pid になります。
サーバー構成
$swoole_server->set([ 'worker_num' => 1, 'task_worker_num' => 1, 'reload_async' => true, 'max
テストの開始
1. タスク ロジックはワーカー プロセスで記述されます
http メソッド
public function test() { $start = microtime(true); echo '请求开始时间:' . $start . PHP_EOL; echo 'pid: ' . getmypid() . PHP_EOL; sleep(30); # 这里睡眠脚本作测试 echo 'finish sleep' . PHP_EOL; $end = microtime(true); echo '请求结束时间:' . $end . PHP_EOL; $this->writeJson(0, round(($end - $start), 3)); }
Monitor onWorkerStart () メソッド
EventHelper::registerWithAdd(ServerManager::getInstance()->getMainEventRegister(),EventRegister::onWorkerStart,function (\swoole_server $server,$workerId){ if(PHP_OS != 'Darwin'){ $name = Config::getInstance()->getConf('SERVER_NAME'); if( ($workerId getConf('MAIN_SERVER.SETTING.worker_num')) && $workerId >= 0){ $type = 'Worker'; }else{ $type = 'TaskWorker'; } cli_set_process_title("{$name}.{$type}.{$workerId}"); } # 下面是打印测试的 if ($type == 'Worker') { echo "这个是reload worker的时间:" . microtime(true) . "\n"; } if ($type == 'TaskWorker') { echo "这个是reload TaskWorker的时间:" . microtime(true) . "\n"; } });
テスト結果:
リクエスト開始時刻: 1566880257.9533 # ここで http インターフェイスがリクエストされています。これは test()
pid: 42108
This This is the time to reload TaskWorker: 1566880265.1501 # This is the time to run php easyswoole reload all. Tasker はアイドル状態でタスクがないため、すぐにリロードできます。
これはワーカーのリロード時間です: 1566880275.1524 # これはワーカーのリロード時間です。sleep(30) が test() にあり、max_wait_time を超えているため、最下層はワーカーのタスクを待機し続けません。古いワーカーは終了されましたが、「睡眠終了」は出力されず、新しいワーカーが作成されました。
# しかし、ワーカーの再作成に 10 秒かかるのはなぜでしょうか? Max_wait_time は 5 秒に設定されていますか? ?これは私には決して理解できなかったことです。
以上がスウールを再起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、バグの報告、機能の送信、コーディング、ドキュメントの改善など、スウールプロジェクトに貢献する方法の概要を説明しています。それは、初心者が貢献を開始するために必要なスキルとステップについて議論し、プレスを見つける方法は

記事では、スウールをカスタムモジュールで拡張し、手順を詳細に、ベストプラクティスを詳細にし、トラブルシューティングで説明します。主な焦点は、機能と統合を強化することです。

この記事では、高性能アプリケーション用のPHPでSwooleの非同期I/O機能を使用することについて説明します。インストール、サーバーのセットアップ、および最適化戦略をカバーします。ワードカウント:159

記事では、Swooleのプロセス分離の構成、安定性とセキュリティの改善などの利点、トラブルシューティング方法について説明します。

Swooleの原子炉モデルは、イベント駆動型の非ブロッキングI/Oアーキテクチャを使用して、高電流シナリオを効率的に管理し、さまざまなテクニックを通じてパフォーマンスを最適化します。(159文字)

記事では、PHPフレームワークであるSwooleの接続問題のトラブルシューティング、原因、監視、および予防について説明します。

この記事では、Swooleのパフォーマンスを監視および最適化するためのツールとベストプラクティス、およびパフォーマンスの問題の方法のトラブルシューティングについて説明します。

要約:この記事では、不適切なリソース管理や管理されていないコルーチンなどの一般的な原因を強調し、識別、分離、修正を通じて、スウールアプリケーションのメモリリークの解決について説明します。 Swoole TrackerやValgrindなどのツール


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
