WordPress REST API の最初の呼び出しが常に遅い

okwaves2024-01-25  10

私は、サードパーティプロバイダーで使用する REST API を実装する 1 つのクライアント向けに開発されたカスタム WordPress プラグインを分析/トラブルシューティングしています。要件の 1 つは、すべての API 呼び出しを 1 秒以内に実行することです。

現在、プラグインは 2 つのルートを登録します。そして「ユーザーの作成」。この質問を簡単にするために、最初のルートのほうが簡単なので、最初のルートに焦点を当てます。

「get user」の平均実行時間は次のとおりです。所要時間は約 0.5 秒ですが、最初の通話には常にさらに時間がかかり、最大 5 秒かかります。それ以降のすべての呼び出しは常に ~0.5 秒の範囲内にあります。 API が約 1 分間使用されなかった場合、次の最初の呼び出しが完了するまでに再び最大 5 秒かかります。

これで私は限られた時間 (~1 秒) で利用可能な何らかのキャッシュがあるか、ホスティング (SiteGround) / データベースにスリープ ポリシーがあると考えられますが、それを確認することはできませんでした。それを調べるために、「ユーザーの取得」と同じ機能を模倣するカスタムのプレーン PHP スクリプトを作成しました。平均応答は ~0.15 秒ですが、最初の呼び出しには平均より長くかかります (~0.6 秒)。

カスタム スクリプトは、このケースで考えられる解決策の 1 つかもしれませんが、まずは WordPress プラグイン + REST API が可能であれば 1 秒未満で動作するように、すべての可能性を検討したいと思います。

2016 年のこのブログによると、REST API を使用すると、大量の WP ファイルが読み込まれるようです。これは、WordPress 5.5 の現在でも適用されますか? 一体何だろう最初の通話に時間がかかる正確な理由は何ですか?また、さらなる呼び出しのためにそれを最適化するにはどうすればよいでしょうか?

------------------------

WordPress API にはキャッシュ システムがあり、この記事を参照してください: https://css-tricks.com/the-deal-with-wordpress-transients/

しかし、パフォーマンスを向上させるために実行できる可能性のあることがいくつかあります。まず、ホストを調べることです。プロバイダによっては、キャッシュされない応答時間の問題が発生する可能性があります。

もう 1 つの、より複雑な解決策は、WP から独自のカスタム API 応答を作成することです。効率化に役立つプラグインがありますすぐに使用できるエンドポイントからの応答は次のとおりです: https://wordpress.org/plugins/custom-api-for-wp/

この方法を選択する場合は、WP と PHP の適切なセキュリティ慣行に従っていることを確認してください。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。