Распространённые проблемы
Распространённые проблемыПредотвращение таймаутов на PHP-сервере

Предотвращение таймаутов на PHP-сервере

Запрос, отправляемый в API сервиса ИИ, включает как можно больше строк для перевода. Чем длиннее запрос, тем больше времени потребуется API для его обработки.

Медленный ответ может вызвать таймаут на вашем PHP-сервере (например, если максимальное время выполнения PHP-скрипта составляет 30 секунд).

Чтобы избежать таймаута, вы можете:

  • Установить Translation Timeout ниже значения max_execution_time PHP (рекомендуется)
  • Увеличить максимальное время выполнения в конфигурации PHP
  • Уменьшить размер полезной нагрузки, отправляемой в API, в настройках плагина
  • Увеличить количество одновременных исходящих запросов, разрешённых вашим сервером (см. Перевод многих записей сразу на множество языков завершается ошибкой)

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

Перейдите в Settings > Service Configuration > [AI service] и уменьшите значение параметра Max request payload length до подходящего количества символов, которое позволит избежать ошибки таймаута.

Например, если установлено значение 4000 и возникает ошибка, попробуйте установить значение 2000.

Настройка параметра «Max request payload length»
Настройка параметра «Max request payload length»

Настройка Translation Timeout

Ваш веб-сервер устанавливает максимальное время выполнения для каждого PHP-запроса с помощью директивы max_execution_time (задаётся в php.ini или через панель управления хостингом).

Плагин предоставляет параметр Translation Timeout в настройках, в разделе Plugin Configuration > Translation Timeout. Держите его ниже значения max_execution_time вашего сервера, чтобы зависший перевод завершался с контролируемой ошибкой в логах, а не вызывал общий таймаут сервера (HTTP 502 / 504 или пустую страницу с сообщением «Maximum execution time of N seconds exceeded»).

Настройка параметра Translation Timeout
Настройка параметра Translation Timeout

Если переводы регулярно завершаются таймаутом, увеличьте оба значения: этот параметр и max_execution_time вашего сервера — одновременно.