HUSKY - Products Filter Professional for WooCommerce

ターボモード:自動cronアップデートが失敗する理由(および修正方法)

問題

ユーザーは WOOF の ターボモード 自動ファイル再生成は確実に機能しません。

症状:

  • "毎日cron" スケジュールでターボモードを有効にする
  • WordPress cron ジョブ woof_turbo_do_recreate_file が作成されていません
  • 手動ファイル生成は完全に機能します
  • 自動更新生成 部分的/空のファイル
  • ファイルの再生成が完了しないようです

影響:

  • 顧客に表示されるフィルターカウントが古い
  • ユーザーエクスペリエンスが悪い (存在しない商品が表示される)
  • 毎日手動介入が必要です

なぜこれが起こるのか: 2つの根本原因

1. ファイルクリア競合条件

WOOFがターボファイルを再生成する際、このプロセスに従います。

// Step 1: Clear the file
file_put_contents($turbo_file, ''); 

// Step 2: Write new data (takes time)
foreach ($products as $product) {
    // Heavy processing for each product...
    file_put_contents($turbo_file, $data, FILE_APPEND);
}

問題:
サイトに多くの商品 (1000+) がある場合、ステップ 2 は 60 ~ 120 秒かかる場合があります。PHP の max_execution_time (通常30〜60秒) を超えると、スクリプトは書き込み途中で終了し、ファイルが残ります 空または部分的.

2. WordPress Cron は実際の Cron ではない

WordPress cron (wp-cron.php) には重大な制限があります:

実行は保証されません – 誰かがあなたのサイトを訪れたときにのみトリガーされます
ブロックされる可能性があります – キャッシュプラグインが実行を妨げている可能性があります
長時間実行されるタスクはありません – PHP実行制限により中断されました
不確かなタイミング – 実行が遅れるか、または全く実行されない可能性があります

実例:
あなたのサイトは主に営業時間(午前9時~午後6時)にトラフィックを得ます。ターボ再生を午前3時にスケジュールします。結果: 全く実行されない 誰も wp-cron.php をトリガーするために午前3時にアクセスしないからです。

信頼性の高いソリューション: サーバーサイド Cron

WordPress cron をに置き換える real server cron サイトのトラフィックとは無関係に実行されます。

ステップ 1: WordPress Cron を無効にする

に追加 wp-config.php (以前 /* That's all, stop editing! */):

/**
 * Disable WordPress cron - we'll use server cron instead
 */
define('DISABLE_WP_CRON', true);

ステップ 2: サーバーの crontab エントリを追加する

Option A: Using PHP CLI (Recommended)

# Open crontab editor
crontab -e

# Add this line (runs daily at 3 AM)
0 3 * * * php /var/www/html/yoursite/wp-cron.php >/dev/null 2>&1

オプションB: wgetを使用する

# Add this line to crontab
0 3 * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

オプション C: curl を使用する

# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

置き換える /var/www/html/yoursite あなたの実際のWordPressインストールパスで。

ステップ 3: PHP実行制限を増やす

に追加 wp-config.php:

/**
 * Increase limits for cron tasks (turbo file generation)
 */
@ini_set('max_execution_time', 300); // 5 minutes
@ini_set('memory_limit', '512M');    // 512 MB RAM

または作成 .user.ini WordPress ルートで:

max_execution_time = 300
memory_limit = 512M

概要

ターボcronの失敗の根本原因:

  1. WordPressのcronは信頼性が低い(トラフィック依存)
  2. PHP実行時間制限が長時間実行されるタスクを中断します

 

推奨される修正:

  1. ✅ WP_CRON を無効にする
  2. ✅ サーバーサイド cron を使用する
  3. ✅ PHP制限を増やす
  4. ✅ トラフィックの少ない時間帯にスケジュールする

結果: お客様のために、正確な商品数で信頼性の高い自動ターボファイル再生を行います。

参照: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/