Пропустить контент
Купить

Обзор

Плагин использует фоновые процессы для выполнения длительных задач без блокировки основного потока работы сайта. Это обеспечивает стабильную работу и предотвращает таймауты при обработке больших объемов данных.

Основные фоновые процессы

Импорт номенклатуры (BackgroundImport)

  • Описание: Импорт товаров, модификаторов и категорий из iiko в WooCommerce
  • Запуск: По расписанию (cron) или вручную
  • Назначение: Синхронизация каталога товаров

Проверка удаленных товаров (BackgroundCheckRemoved)

  • Описание: Удаление товаров из WooCommerce, которые были удалены в iiko
  • Запуск: После импорта номенклатуры
  • Назначение: Поддержание актуальности каталога

Проверка стоп-листов (BackgroundCheckStopList)

  • Описание: Обновление статуса доступности товаров согласно стоп-листам iiko
  • Запуск: По расписанию
  • Назначение: Автоматическое управление наличием товаров

Синхронизация купонов (BackgroundCouponSync)

  • Описание: Импорт скидок и промокодов из iiko
  • Запуск: По расписанию
  • Назначение: Автоматическое применение скидок

Синхронизация пользователей (BackgroundUserSync)

  • Описание: Синхронизация данных пользователей между iiko и WordPress
  • Запуск: По расписанию
  • Назначение: Обновление профилей пользователей

Отправка платежей (BackgroundSendPayment)

  • Описание: Передача данных об оплате в iiko для режима оплаты по столу
  • Запуск: При оплате заказа
  • Назначение: Синхронизация платежей с iiko

Удаление старых логов (BackgroundRemoveLogs)

  • Описание: Очистка файлов логов старше 7 дней
  • Запуск: По расписанию
  • Назначение: Управление дисковым пространством

Как работают фоновые процессы

Механизм работы

  1. Инициирование: Процесс запускается по расписанию или вручную
  2. Очереди: Задачи добавляются в очередь для асинхронной обработки
  3. Батчи: Очередь разделяется на небольшие пакеты для предотвращения таймаутов
  4. Обработка: Каждый батч обрабатывается последовательно
  5. Завершение: При успешном завершении отправляются уведомления

Настройки расписания

WP Cron

  • Основной механизм планирования задач WordPress
  • Настраивается в wp-config.php или через плагины типа WP Crontrol

Интервалы выполнения

  • Импорт номенклатуры: каждые 15-60 минут
  • Проверка стоп-листов: каждые 5-15 минут
  • Синхронизация пользователей: ежедневно
  • Очистка логов: еженедельно

Настройка интервалов

php
// Пример настройки интервала в functions.php
add_filter('cron_schedules', function($schedules) {
    $schedules['every_15_minutes'] = [
        'interval' => 900,
        'display' => 'Every 15 minutes'
    ];
    return $schedules;
});

Мониторинг и управление

Статус процессов

  • Running: Процесс выполняется
  • Idle: Процесс ожидает
  • Queue Size: Количество задач в очереди

Управление через админку

  • В разделе Инструменты → Фоновые процессы можно:
    • Просмотреть статус всех процессов
    • Отменить выполняющийся процесс
    • Обновить статус в реальном времени

Логирование

  • Все процессы записывают логи в файл
  • Уведомления отправляются в админку и Telegram (если настроено)
  • Логи автоматически очищаются через 7 дней

Устранение неполадок

Проблема: Процессы не запускаются

Решение:

  • Проверьте настройку WP Cron
  • Убедитесь, что отключены конкурирующие cron-задачи
  • Проверьте логи на наличие ошибок

Проблема: Большая очередь задач

Решение:

  • Увеличьте лимит памяти PHP
  • Уменьшите размер батча в настройках
  • Проверьте подключение к API iiko

Проблема: Таймауты выполнения

Решение:

  • Увеличьте max_execution_time в php.ini
  • Разделите большие задачи на меньшие батчи
  • Используйте сервер с лучшей производительностью

Проблема: Дублирование задач

Решение:

  • Проверьте настройку интервалов cron
  • Очистите очередь вручную через админку
  • Отключите автоматический запуск процессов

Оптимизация производительности

Рекомендации

  • Запускайте импорт в непиковые часы
  • Мониторьте использование памяти
  • Регулярно очищайте логи
  • Используйте кеширование для часто запрашиваемых данных

Настройки производительности

  • Размер батча: 10-50 элементов
  • Таймаут запросов: 15-30 секунд
  • Лимит памяти: минимум 256MB
  • Max execution time: минимум 300 секунд

API для разработчиков

Хуки для кастомизации

php
// Хук перед запуском процесса
do_action('iiko_background_start', $process_class);

// Хук после завершения процесса
do_action('iiko_background_complete', $process_class, $action);

// Кастомный интервал для процесса
add_filter('iiko_background_import_cron_interval', function($interval) {
    return 30; // минуты
});

Создание собственного процесса

php
class MyCustomProcess extends Background {
    protected $action = 'my_custom_process';
    
    public static function get_title() {
        return 'My Custom Process';
    }
    
    protected function task($item) {
        // Логика обработки элемента
        return false; // или следующий элемент
    }
}

Рекомендация

Регулярно проверяйте статус фоновых процессов в админке и настраивайте расписание в зависимости от нагрузки на сайт. :::</parameter

WOO2IIKO © 2019 - 2026 Алексей Тихомиров.