やりたいこと
WordPressのタスク定期実行は、wp-cronにより行われる。
wp-cronは擬似的なcron機能で、初期状態ではWordPressにアクセスがあった時に起動する。
起動すると、現在時刻と予約タスクの実行時刻を比較し、時間が過ぎていたらタスクを処理する。
もしアクセスが集中すると、wp-cronが都度、必要以上に起動し、瞬間的な負荷が増大していく。
そうなると、表示速度が本来よりも低下し、最悪の場合はエラーが発生する。
この問題を解決し、表示速度を改善するため、wp-cronの起動をアクセスごとではなく、定期実行にする。
手順
wp-cron停止
アクセスのたびにwp-cronを起動する機能を停止する。
wp-config.phpへ以下を追記する。
define('DISABLE_WP_CRON', 'true');
cronにwp-cron起動設定追加
cronに設定を追加することで、wp-cronを定期実行に切り替える。
以下コマンドを入力して、crontabを編集する。
crontab -e
以下を入力して保存する。
0 * * * * /usr/local/bin/php /{WordPressのディレクトリ}/wp-cron.php 1> /dev/null
上記例だと、1時間ごとにwp-cron.phpが起動される。
さくらのレンタルサーバの場合
cronはさくらのサーバコントロールパネルからも設定できる。
入力結果を視認できて便利。
上記例だと、毎日0時にwp-cron.phpが起動される。