Turbo Mode: Why Automatic Cron Updates Fail (And How to Fix It)
The Problem
Users report that WOOF’s Turbo Mode automatic file regeneration doesn’t work reliably:
Symptoms:
- Turbo mode enabled with”Daily cron” schedule
- WordPress cron job
woof_turbo_do_recreate_fileis not being created - Manual file generation works perfectly
- Automatic updates generate partial/empty files
- File regeneration seems to never complete
Impact:
- Outdated filter counts displayed to customers
- Poor user experience (seeing products that don’t exist)
- Manual intervention required daily
Why This Happens: Two Root Causes
1. File Clearing Race Condition
When WOOF regenerates the turbo file, it follows this process:
// 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);
}
The Problem:
If your site has many products (1000+), Step 2 can take 60-120 seconds. If PHP’s max_execution_time (usually 30-60 seconds) is exceeded, the script terminates mid-write, leaving the file empty or partial.
2. WordPress Cron Isn’t Real Cron
WordPress cron (wp-cron.php) has critical limitations:
❌ Not guaranteed to run – only triggers when someone visits your site
❌ Can be blocked – caching plugins may prevent execution
❌ No long-running tasks – killed by PHP execution limits
❌ Unreliable timing – may run late or not at all
Real-world scenario:
Your site gets traffic mostly during business hours (9 AM – 6 PM). You schedule turbo regeneration for 3 AM. Result: It never runs because no one visits at 3 AM to trigger wp-cron.php.
The Reliable Solution: Server-Side Cron
Replace WordPress cron with real server cron that runs independently of site traffic.
Step 1: Disable WordPress Cron
Add to wp-config.php (before /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Step 2: Add Server Crontab Entry
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
Option B: Using wget
# Add this line to crontab 0 3 * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Option C: Using curl
# Add this line to crontab 0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Replace /var/www/html/yoursite with your actual WordPress installation path.
Step 3: Increase PHP Execution Limits
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
Or create .user.ini in your WordPress root:
max_execution_time = 300 memory_limit = 512M
Summary
Root causes of turbo cron failures:
- WordPress cron is unreliable (traffic-dependent)
- PHP execution time limits kill long-running tasks
Recommended fix:
- ✅ Disable WP_CRON
- ✅ Use server-side cron
- ✅ Increase PHP limits
- ✅ Schedule during low-traffic hours
Result: Reliable, automatic turbo file regeneration with accurate product counts for your customers.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/
Troubles? Ask for Support!
