HUSKY - Product Filter for WooCommerce

HUSKY Turbo Mode: почему автоматические обновления cron не работают (и как это исправить)

Проблема

Пользователи сообщают, что автоматическая регенерация файлов WOOF работает ненадежно: Turbo Mode режим Turbo включен с расписанием "Ежедневный cron"

Симптомы:

  • задание WordPress cron
  • не создается woof_turbo_do_recreate_file Ручная генерация файлов работает отлично
  • Автоматические обновления генерируют
  • частичные/пустые файлы Регенерация файлов, похоже, никогда не завершается
  • Воздействие:

Устаревшие счетчики фильтров, отображаемые клиентам

  • Плохой пользовательский опыт (отображение несуществующих товаров)
  • Требуется ежедневное ручное вмешательство
  • Почему это происходит: Две основные причины

1. Состояние гонки при очистке файлов

Когда WOOF регенерирует турбо-файл, он выполняет следующий процесс:

Проблема:

// Шаг 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
(обычно 30-60 секунд) превышен, скрипт завершается на середине записи, оставляя файл max_execution_time пустым или частичным 2. WordPress Cron — это не настоящий Cron.

WordPress cron (

) имеет критические ограничения:wp-cron.phpНе гарантировано выполнение

— срабатывает только тогда, когда кто-то посещает ваш сайт Может быть заблокирован
— плагины кэширования могут препятствовать выполнению Нет длительных задач
— завершается из-за ограничений выполнения PHP Ненадежное время выполнения
— может выполниться с задержкой или не выполниться вовсе Реальный сценарий:

Ваш сайт получает трафик в основном в рабочее время (с 9:00 до 18:00). Вы планируете регенерацию turbo на 3:00 ночи. Результат:
Она никогда не запускается , потому что никто не посещает сайт в 3:00 ночи, чтобы активировать wp-cron.php. Надежное решение: Серверный Cron

Замените WordPress cron на

настоящий серверный cron , который работает независимо от трафика сайта. Шаг 1: Отключите WordPress Cron

Добавьте в

(перед wp-config.php Шаг 2: Добавьте запись в crontab сервера /* That's all, stop editing! */):

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

Вариант A: Использование PHP CLI (Рекомендуется)

Вариант B: Использование wget

# 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

Вариант C: Использование curl

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

Замените

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

на фактический путь вашей установки WordPress. /var/www/html/yoursite Шаг 3: Увеличьте лимиты выполнения PHP

Или создайте

Add to 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

в корне вашего WordPress: .user.ini Основные причины сбоев turbo cron:

max_execution_time = 300
memory_limit = 512M

Итог

WordPress cron ненадежен (зависит от трафика)

  1. Ограничения времени выполнения PHP завершают длительные задачи
  2. Рекомендуемое исправление:

 

✅ Отключите WP_CRON

  1. ✅ Используйте серверный cron
  2. ✅ Увеличьте лимиты PHP
  3. ✅ Планируйте во время низкой посещаемости
  4. Надежная, автоматическая регенерация турбо-файлов с точными счетчиками товаров для ваших клиентов.

Результат: Reliable, automatic turbo file regeneration with accurate product counts for your customers.

Источник: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/