WordPress cronジョブはページの読み込みを遅くしますか?


8

ユーザーがサイトを訪問し、その訪問が非常に集中的なcronジョブをトリガーした場合、ページの読み込み速度が遅くなりますよね?ページはcronジョブの実行を待たずにロードされますが、cronジョブは並行して実行されるため、サーバーがビジー状態であるため、ページのロードが遅くなる可能性があります。


spawn_cronを読んで、役立つかもしれません:codex.wordpress.org/Function_Reference/spawn_cron
TomC

cronジョブがサーバーをビジーにするほど重い場合は、サーバーがビジーになるほど重いジョブです。私はあなたの質問に完全には従いません-それを確認するために?
Rarst

はい、確認しておきたいのは、ページの読み込みとcronジョブが個別に実行されることを読んでいるため、ページの読み込みに影響がないためです。ただし、cronジョブが十分に重い場合は、副作用としてページの読み込みに影響します。
urok93 2013

回答:


10

短い答え- いいえ。ページ要求は、スケジュールされたキューを初期化します。これは初期化リクエストです。Wp-cronリクエストはスタンドアロンのリクエストです。

したがって、URL /somepageを要求するには、要求を初期化するだけです/wp-cron.php

ただし、cronイベントがうまく機能しない場合(1000 dbクエリなど、応答時間が非常に長いリソースを要求している場合)、またはその両方、または各リクエストのcronイベントを再スケジュールする場合と同じように...他のhttpリクエストは、リソース、CPUパフォーマンス、メモリなどを消費します...十分なリソースを消費すると、ページが遅くなります。


9

ほとんどの場合、短い答えは実際にはyesです。

まず、ほとんどの設定では、1秒のタイムアウトでループバックHTTPリクエストを介して行われるため、cronジョブを生成するとページの読み込みで1秒の遅延が発生します-https://wordpress.org/support/topic/saveを参照してください-a-full-second-on-cron-execution /

次に、生成されたジョブは、データベースアクセス(およびその他のリソース)のページロードと競合します。複数のプロセスがデータベースを同時に読み取ることができます。ただし、プロセスがデータベースに書き込むときは常に、デフォルトでロックされており、他のプロセスによる同時書き込みまたは読み取りアクセスを防止しています-/programming/1005206/does-sqlite-lock-the-databaseを参照してください-file-on-reads#answer-1005218。これの影響は、cronジョブのデータベース更新がどれほど複雑であるか、およびデータベースが実際にロックされる期間に依存し、重要ではない場合があります。もちろん、それはまた、ページが要求されたときにcronジョブを実行していることが起こった場合に問題になりますが、ページの読み込みに生み出されたcronジョブ持つでしょう保証を それらは少なくともそのページの読み込みに影響します。

サーバー/ホスティングが許可する場合は、次のコマンドを使用して、スケジュールされたcronジョブを数時間ごとに実行するようにセットアップすることをお勧めします

php -q /path/to/wp-cron.php

で次のエントリを使用して、ページの読み込み時にcronの生成を無効にしますwp-config.php

define('DISABLE_WP_CRON', true);

1
これが本当の答えです。
ILikeTurtles 2017

記事によると、1秒の遅延は、7.15.5より前のcURLバージョンで発生します。7.15.5以降のcurlバージョンで正常に動作します。7.15.5は2006年8月にリリースされました。本当に本当に古いセットアップを除いて、1秒のタイムアウトはなくなりました。
user63350


@ user63350 cURLには当てはまりますが、WordPressには当てはまりません。記事から:「クラスWP_Http_Curlは、フラクショナルタイムアウトを1秒に調整します(cURLがサポートする場合でも)」。最新のWordPress(5.2.2)でもタイムアウトは1秒であるため、最新のものを含むすべてのセットアップで問題が発生します。
ジェイク

実際、1秒のタイムアウトはWordPress 4.6で#33055によって修正されました。(コードベースを見ると、今では呼び出されないprivateようなメソッドを含め、古いコードがまだ残っているので混乱しWP_Http::_dispatch_requestます。)
Jake
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.