Как ускорить парсинг в WordPress на больших объемах и подружить его с ИИ: разбор релиза WPGrabber «Tune» 2.1.792

Каждый, кто настраивал автоматический импорт контента (парсинг) в WordPress на сотни или тысячи лент, сталкивался с тремя всадниками апокалипсиса: лавинообразным ростом нагрузки на базу данных, «зависанием» процессов в памяти СУБД и огромными счетами за API нейросетей при рерайтинге. В новой сборке модификации WPGrabber "Tune" (v2.1.792) эти проблемы были решены на архитектурном уровне. Ниже — подробный разбор того, что изменилось и как это оптимизирует работу веб-мастера.

Как ускорить парсинг в WordPress на больших объемах и подружить его с ИИ: разбор релиза WPGrabber «Tune» 2.1.792

1. Оптимизация СУБД под Highload: убираем лишние JOIN и ускоряем дедупликацию

Самая частая причина падения производительности на больших базах данных — это проверка контента на дубликаты перед публикацией. Если у вас 100 000+ записей, стандартный поиск по названию начинает намертво вешать MySQL.

  • Индексированная проверка isTitle: Механизм валидации уникальности полностью переписан. Вместо ресурсоемкого сканирования неиндексированных текстовых полей СУБД теперь делает точечную выборку по оптимизированным путям.
  • Прощайте, тяжелые запросы: Из цепочки импорта полностью вырезаны избыточные связки таблиц (JOIN) и выборки «тяжелых» мета-данных, которые не требуются для базовой отсечки дубликатов.
  • Кастомный составной индекс: В таблицу wp_posts добавлен составной индекс idx_post_title_type, включающий в себя post_title(100), post_type. Ограничение длины префикса заголовка до 100 символов позволило минимизировать размер индексного дерева в ОЗУ, сохранив при этом скорость поиска дубликатов на уровне сотых долей секунды.

2. ИИ-интеграции: Gemini 2.5 Flash-Lite по умолчанию и кастомные эндпоинты

Конвейер уникализации контента «на лету» адаптирован под новые экономические реалии и требования автономности:

  • Новый стандарт — gemini-2.5-flash-lite: Теперь эта модель является ИИ-движком по умолчанию. Причина выбора очевидна: феноменальное соотношение скорости работы, качества контекстного рерайтинга и ультранизкой стоимости токенов, что критически важно при обработке гигабайтов текстовых фидов.
  • Полная свобода с Base URL для OpenAI: Добавлена возможность вручную указывать домен для запросов. Это полностью решает проблему обхода блокировок через сторонние прокси-шлюзы или позволяет перенаправить запросы на локально развернутые модели (через Ollama / LocalAI).
  • Синонимизация через GigaChat API: Добавлен нативный модуль для работы с API GigaChat, дающий отличные результаты при обработке русскоязычного сегмента без необходимости настраивать зарубежные прокси.

3. Мьютексы на flock и защита от «наслоения» процессов в Cron

При запуске импорта по расписанию (например, каждые 5 минут) часто возникает ситуация, когда старый процесс еще не докачал тяжелые медиафайлы, а планировщик запускает новую копию скрипта. Результат — утечка памяти, взаимные блокировки таблиц и падение сервера.

Как это решено: Внедрена неблокирующая изоляция процессов serverCron через файловый мьютекс flock (LOCK_NB). Если новый процесс видит заблокированный лок-файл, он мгновенно и корректно завершает работу. А специальный shutdown-handler гарантирует удаление лок-файла даже в случае возникновения критической ошибки (Fatal Error).

Дополнительно в CLI-среде введено жесткое ограничение времени выполнения — set_time_limit(280). Лимит в 280 секунд идеально вписывается в 5-минутный интервал Cron, оставляя безопасный 20-секундный зазор и исключая «зависание» мертвых процессов в системе.

4. Умный обход оптимизаторов графики и сохранение качества

Современные сайты-доноры часто маскируют реальные изображения за эндпоинтами оптимизаторов (например, в стек-технологиях Next.js), выдавая в фид сжатые WebP/AVIF низкого разрешения через URL вида /_next/image?url=....

В WPGrabber добавлен парсер, который автоматически вытаскивает оригинальные raw-URL из параметров таких запросов и переводит скачивание на прямые CDN-хосты (такие как Contentful/ctfassets). Картинки сохраняются в вашем WordPress в максимально возможном исходном качестве.

Для обхода жестких систем защиты (включая Cloudflare) медиаконтент теперь может копироваться через выделенный плагин Fetch API Client Servakov.

5. Безопасность и чистка legacy-багов

В рамках релиза закрыты давние «хвосты» в ядре плагина:

  • Защита от CSRF: В метод сохранения настроек WPGPlugin::save() добавлена строгая проверка WP Nonce. Изменение конфигурации плагина извне теперь невозможно.
  • Исправление 404 ошибок на кириллице: Патч в методе TGrabberCore::_rawurlencode() устранил проблему двойного кодирования URL, из-за которой вложения с кириллическими символами в названии отдавали 404 ошибку при попытке скачивания.
  • Валидация XML и UTF-8: Интеграция метода force_valid_utf8() в узлы сохранения ссылок и санитизация неэкранированных амперсандов (&) перед разбором через SimpleXML полностью исключили падение парсера на «битых» фидах.

6. Улучшение UX панели администратора

Управлять потоками стало удобнее: в списке лент теперь в реальном времени выводится актуальный статус прокси-сервера для каждой конкретной ленты, а также наглядные маркеры подключенной синонимизации и направлений перевода контента. Также добавлена нативная совместимость с популярным плагином Page Links To (поддержка макроса %SOURCE_URL%).

Окружение, на котором сборка прошла стресс-тесты:

  • WordPress: 7.0 (полная готовность ядра)
  • PHP: 8.5.6 (обработчик apache2handler, расширение mbstring активно)
  • Сетевой стек: CURL 8.20.0 / OpenSSL 3.6.0
  • Ограничения среды: max_execution_time: 1330, max_input_vars: 1000
  • Обработка графики: GD bundled (2.1.0) с полной поддержкой JPEG, WebP и AVIF.

Обновление рекомендуется к развертыванию на боевых серверах. Перед запуском на высоконагруженных проектах убедитесь, что у пользователя базы данных есть права на добавление индексов (INDEX privilege).