Перенесемо ваш сайт безкоштовно — просто напишіть нам
Recommended Services
Supported Scripts
WordPress
Hubspot
Joomla
Drupal
Wix
Shopify
Magento
Typeo3
WooCommerce Action Scheduler створює навантаження на сервер під час виконання фонових задач

WooCommerce виконує багато процесів у фоновому режимі. Відправлення повідомлень, робота окремих платіжних модулів, синхронізація даних, вебхуки та завдання плагінів можуть виконуватися не безпосередньо під час відкриття сторінки, а через чергу запланованих дій.

Для цього WooCommerce використовує Action Scheduler.

У нормальній ситуації власник магазину взагалі не помічає його роботи. Але якщо в черзі накопичуються тисячі задач, частина з них постійно завершується помилками або сервер не встигає їх обробляти, магазин може почати створювати значне фонове навантаження.

У цій статті розберемо, як зрозуміти, що проблема пов’язана саме із Scheduled Actions, що перевірити в першу чергу і коли причину вже варто шукати не тільки в WooCommerce, а й у ресурсах хостингу.

Що таке Action Scheduler у WooCommerce

Action Scheduler — це система черг для фонових задач WordPress і WooCommerce.

Замість того щоб виконувати важку операцію безпосередньо під час відкриття сторінки користувачем, плагін може додати її в чергу і виконати пізніше.

Так можуть працювати:

  • окремі операції з замовленнями;
  • відправлення email;
  • вебхуки;
  • синхронізація з зовнішніми сервісами;
  • оновлення даних;
  • платіжні модулі;
  • підписки;
  • імпорт або експорт;
  • маркетингові плагіни;
  • інші розширення WooCommerce.

Сам Action Scheduler не є проблемою. Навпаки, він створений для того, щоб нормально виконувати фонові задачі.

Проблеми починаються тоді, коли одна або кілька задач генеруються швидше, ніж сервер може їх виконувати.

Де подивитися Scheduled Actions у WooCommerce

У більшості сучасних інсталяцій WooCommerce чергу можна переглянути без встановлення додаткових плагінів.

У WordPress відкрийте:

WooCommerce → Status → Scheduled Actions

Тут можна побачити завдання з різними статусами:

  • виконані;
  • очікують виконання;
  • виконуються;
  • завершилися помилкою;
  • скасовані.

Особливу увагу варто звернути на Pending і Failed.

Наявність кількох таких задач сама по собі не означає проблему. Але якщо їх постійно стає більше або один і той самий hook генерує сотні чи тисячі записів, потрібно з’ясувати причину.

Ознаки проблем із Action Scheduler

Типовий власник магазину не заходить щодня в Scheduled Actions. Тому проблему часто помічають за непрямими симптомами.

  • адмінка WordPress стала працювати повільніше;
  • CPU періодично різко завантажується без очевидного росту відвідуваності;
  • WooCommerce працює повільно навіть уночі;
  • у Scheduled Actions накопичується велика кількість Pending;
  • з’являється багато Failed actions;
  • задачі одного плагіна постійно запускаються повторно;
  • сервер регулярно впирається у PHP-процеси;
  • cron працює практично безперервно;
  • адмінка магазину зависає під час фонової синхронізації;
  • після встановлення або оновлення конкретного плагіна навантаження різко зросло.

При цьому важливо не плутати причину і наслідок. Велика черга Scheduled Actions може бути наслідком слабкого сервера, але може бути й результатом помилки конкретного плагіна.

1. Подивіться, який hook створює найбільше задач

Перший крок — не видаляти чергу, а зрозуміти, хто її створив.

У Scheduled Actions видно назву hook. За нею часто можна визначити плагін або функцію, яка поставила задачу в чергу.

Наприклад, якщо десятки тисяч дій мають однакову назву, проблема найімовірніше не в самому WooCommerce, а в одному конкретному процесі.

Це може бути:

  • плагін синхронізації;
  • CRM;
  • платіжний модуль;
  • плагін підписок;
  • імпорт товарів;
  • email-маркетинг;
  • інтеграція з маркетплейсом;
  • плагін аналітики.

Тому масово видаляти Scheduled Actions без розуміння їх призначення не варто.

2. Перевірте Failed Actions

Якщо задача один раз завершилася помилкою, це ще не катастрофа.

Але якщо однакова дія постійно падає, потрібно дивитися її лог.

Причиною можуть бути:

  • PHP error;
  • недостатній memory_limit;
  • перевищення часу виконання;
  • помилка плагіна;
  • недоступний зовнішній API;
  • проблема з базою даних;
  • конфлікт після оновлення;
  • неправильне налаштування інтеграції.

Якщо причина не усунута, плагін може продовжувати створювати нові задачі, а черга — рости.

3. Перевірте WP-Cron

У стандартній конфігурації WordPress багато запланованих задач запускаються через WP-Cron.

Особливість WP-Cron у тому, що він пов’язаний із запитами до сайту. На маловідвідуваних магазинах задачі можуть виконуватися із затримкою, а при великому трафіку часті запуски можуть створювати додаткове навантаження.

Для робочого WooCommerce-магазину часто доцільніше використовувати нормальний серверний cron із контрольованим інтервалом, але його потрібно налаштовувати правильно.

Самостійно вимикати WP-Cron без налаштованої альтернативи не варто — частина автоматичних задач WordPress і WooCommerce може перестати виконуватися вчасно.

4. Подивіться, чи не росте черга швидше, ніж виконується

Нормальна черга постійно змінюється: нові задачі з’являються, виконуються і переходять у Completed.

Небезпечніша ситуація — коли кількість Pending постійно збільшується.

Наприклад:

  • о 10:00 — 500 задач;
  • о 12:00 — 1500;
  • о 15:00 — 4000;
  • увечері — вже 10 000.

Це означає, що магазин створює фонові операції швидше, ніж середовище встигає їх обробити.

Причину потрібно шукати або в джерелі задач, або в продуктивності сервера.

5. Перевірте ресурси хостингу

Action Scheduler виконує реальний PHP-код. Тому кожна задача потребує процесорного часу, пам’яті та часто звертається до бази даних.

Якщо магазин одночасно:

  • обслуговує відвідувачів;
  • виконує імпорт;
  • синхронізує залишки;
  • відправляє вебхуки;
  • обробляє Scheduled Actions;
  • працює з CRM;

усі ці процеси конкурують за ресурси одного сервера.

На слабкому тарифі це може проявлятися як високий CPU, нестача RAM, зайняті PHP workers або повільна робота MySQL.

У такій ситуації просте очищення черги дасть лише тимчасовий результат.

6. Перевірте базу даних WooCommerce

Для роботи Action Scheduler потрібна база даних. Якщо магазин великий, а база давно не обслуговувалась, фонові процеси можуть додатково навантажувати MySQL.

Варто перевірити:

  • розмір таблиць;
  • кількість старих записів;
  • повільні SQL-запити;
  • індекси;
  • навантаження MySQL під час роботи черги;
  • чи не створює один плагін непропорційно багато записів.

Особливо це актуально для магазинів, які працюють кілька років і мають велику історію замовлень та багато інтеграцій.

7. Згадайте, що змінилося перед появою проблеми

Якщо навантаження з’явилося раптово, дуже часто перед цим відбулася конкретна зміна.

  • оновили WooCommerce;
  • встановили новий плагін;
  • оновили платіжний модуль;
  • підключили CRM;
  • запустили синхронізацію товарів;
  • додали маркетплейс;
  • змінили налаштування cron;
  • запустили масове оновлення каталогу.

Це значно звужує коло пошуку.

Чого не варто робити

При великій черзі власник магазину часто хоче просто натиснути Cancel або видалити всі записи.

Це може прибрати симптом, але не усуне причину.

Більше того, серед Scheduled Actions можуть бути задачі, необхідні для роботи платежів, підписок, email, синхронізації або інших бізнес-процесів.

Тому правильна послідовність така:

  1. визначити hook;
  2. зрозуміти, який плагін його створює;
  3. перевірити Failed і логи;
  4. перевірити cron;
  5. перевірити ресурси сервера;
  6. усунути причину;
  7. лише після цього розбирати накопичену чергу.

Коли проблема вже може бути в хостингу

Переносити магазин через будь-яку велику чергу Scheduled Actions не потрібно.

Але варто перевірити серверне середовище, якщо:

  • WooCommerce регулярно впирається в CPU;
  • не вистачає PHP workers;
  • фонові задачі постійно відстають;
  • MySQL стає вузьким місцем;
  • магазин одночасно має великий трафік та багато інтеграцій;
  • після запуску cron сайт помітно гальмує;
  • навіть після виправлення плагінів сервер не справляється з нормальною чергою.

Для великого магазину важливо оцінювати не тільки кількість товарів, а всю фонову роботу WooCommerce.

Корисно також прочитати:

Коли WooCommerce-магазину вже потрібен VPS

Action Scheduler і рекламний трафік

Проблема може ставати особливо помітною під час реклами.

Сайт одночасно обробляє більше відвідувачів, кошиків і замовлень, а фонові процеси нікуди не зникають.

Якщо ресурсів мало, користувач може бачити повільні категорії, зависання checkout або помилки сервера.

Окремо цю ситуацію ми розібрали у матеріалі:

WooCommerce падає під час реклами: причини і рішення

Який хостинг потрібен WooCommerce із великою кількістю фонових задач

Не існує універсальної кількості CPU або RAM, яка підійде кожному магазину.

Два WooCommerce-сайти з однаковою кількістю товарів можуть створювати абсолютно різне навантаження через різні плагіни, інтеграції, імпорт, кількість замовлень і фонових процесів.

Тому при виборі хостингу важливо дивитися на реальну роботу магазину:

  • CPU і RAM;
  • PHP workers;
  • продуктивність бази даних;
  • cron;
  • кількість інтеграцій;
  • піковий трафік;
  • можливість масштабування;
  • наявність технічної підтримки.

Якщо магазин уже працює і створює продажі, серверне середовище краще підбирати за реальним навантаженням, а не тільки за характеристиками тарифу.

Детальніше про хостинг для WooCommerce та WordPress-магазину →

Висновок

Action Scheduler — нормальна частина роботи WooCommerce. Наявність Scheduled Actions сама по собі не означає проблему.

Звертати увагу потрібно тоді, коли черга постійно росте, накопичуються Failed actions, один плагін генерує велику кількість задач або сервер перестає встигати обробляти фонові процеси.

Правильний підхід — не видаляти чергу навмання, а визначити джерело задач, перевірити логи, WP-Cron, базу даних і ресурси сервера.

Якщо після усунення програмних проблем WooCommerce усе одно регулярно впирається в ресурси, це вже сигнал оцінити поточний хостинг.

Hostnova допомагає розміщувати WooCommerce-магазини в європейському дата-центрі та переносити робочі сайти з іншого хостингу.

Переглянути тарифи Hostnova →