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

Обзор ​

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

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

Импорт номенклатуры (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 Алексей Тихомиров.