Загрузка...

WP-Cron vs Системный Cron для WordPress?

WP-Cron vs Системный Cron: что выбрать для WordPress?
wordpress

1. Что такое Cron вообще?

Cron — это механизм, который позволяет запускать задачи по расписанию. Например:

  • отправка email-рассылки каждое утро,
  • проверка обновлений раз в час,
  • очистка временных файлов раз в сутки.

В WordPress тоже есть свой механизм — WP-Cron, но он работает иначе, чем настоящий системный Cron на сервере.


2. WP-Cron: встроенный планировщик WordPress

Как работает

  • WP-Cron запускается не по времени, а при загрузке сайта пользователем.
  • Когда кто-то открывает страницу, WordPress проверяет: есть ли запланированные задачи? Если да — выполняет их.

Преимущества

  • Работает «из коробки», не требует доступа к серверу.
  • Подходит для небольших сайтов с низкой нагрузкой.

Недостатки

  • Если сайт редко посещают — задачи могут не выполняться вовремя.
  • При большом трафике — наоборот, WP-Cron может запускаться слишком часто и нагружать сервер.
  • Менее предсказуемый механизм, чем системный Cron.

3. Системный Cron: планировщик на уровне сервера

Как работает

  • Это стандартный инструмент Linux/Unix.
  • Задачи выполняются строго по расписанию, независимо от посещаемости сайта.

Преимущества

  • Надёжность и точность выполнения задач.
  • Снижение нагрузки на WordPress — задачи не зависят от визитов пользователей.
  • Возможность задавать гибкие расписания (каждую минуту, по понедельникам и т. д.).

Недостатки

  • Требуется доступ к серверу (SSH, панель управления).
  • Нужно уметь прописывать cron-задания.

4. Когда использовать WP-Cron, а когда системный Cron?

Подходит WP-Cron

  • Маленький блог или лендинг.
  • Сайт редко посещают и задачи не критичны (например, проверка обновлений раз в сутки).
  • Нет доступа к серверу (виртуальный хостинг).

Подходит системный Cron

  • Интернет-магазины (WooCommerce) — задачи должны выполняться вовремя (отправка писем, обновление акций).
  • Сайты с большим трафиком.
  • Критичные задачи (резервное копирование, синхронизация с API).

5. Как включить и настроить

WP-Cron по умолчанию

Ничего делать не нужно — WordPress сам использует WP-Cron.

Использование системного Cron вместо WP-Cron

  1. Отключаем WP-Cron
    В wp-config.php добавляем:
define('DISABLE_WP_CRON', true);
  1. Создаём cron-задание на сервере
    Например, выполнять каждые 5 минут:
*/5 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Или через curl:

*/5 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
  1. Через панель хостинга
    На shared-хостинге (ISPmanager, cPanel, Plesk) обычно есть «Планировщик заданий (Cron jobs)». Там можно задать запуск wp-cron.php каждые 5 минут.

6. Примеры для разработчиков

Добавление собственной задачи

if ( ! wp_next_scheduled( 'my_custom_event' ) ) {
    wp_schedule_event( time(), 'hourly', 'my_custom_event' );
}

add_action( 'my_custom_event', 'my_custom_function' );

function my_custom_function() {
    // например, очистка кеша или синхронизация с API
}

Удаление задачи

$timestamp = wp_next_scheduled( 'my_custom_event' );
wp_unschedule_event( $timestamp, 'my_custom_event' );

7. Подводные камни и советы

  • WP-Cron может запускаться несколько раз параллельно при высокой нагрузке → дублирование задач.
  • Системный Cron требует внимательности: не ставьте слишком частый интервал (например, каждую минуту без нужды).
  • Если используете кеш или Cloudflare, убедитесь, что запросы к wp-cron.php проходят (иначе задачи не будут выполняться).
  • Для WooCommerce рекомендуется системный Cron — иначе могут задерживаться письма о заказах.

8. Актуальные плагины для работы с Cron

  • WP Crontrol — просмотр и управление задачами WP-Cron.
  • Advanced Cron Manager — удобный интерфейс для разработчиков.
  • WP Crontrol CLI — управление через WP-CLI.

9. Резюме

Вариант Плюсы Минусы Кому подходит
WP-Cron Работает «из коробки», не требует доступа к серверу Зависит от посещаемости, может перегружать сайт Новичкам, маленьким сайтам
Системный Cron Точный, надёжный, разгружает WP Требует доступа к серверу и настроек Интернет-магазинам, крупным сайтам, разработчикам

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *