Я нахожусь на общем сервере (Siteground), и поскольку мой PHP-скрипт WordPress занимает более 30 секунд, он возвращает тайм-аут 504 шлюза.
Будет ли мой запрос выполняться и завершаться, если он не столкнется с дальнейшей ошибкой?
Изменить: я спросил, почему я получил эту ошибку для моей команды хостинга, здесь эксперт Siteground Hosting объяснил проблему следующим образом:
Мы используем Apache + Nginx на всех наших серверах. Apache используется для основного веб-сервиса, в то время как Nginx используется в качестве обратного прокси-сервера и распространяет кеш. Когда ответ не может быть обработан из кэша (обычно это относится к динамическому контенту), запрос от Nginx выполняется в сторону Apache. Это когда Apache обрабатывает запрос, перенаправляет его на ваш сайт и в соответствии с логикой PHP можно выполнять запросы MySQL или получать другие данные. Если этот процесс занимает слишком много времени и Apache не возвращает ответ своевременно Nginx, вы увидите эту ошибку. Короче говоря, Apache не может обработать запрос, поскольку приложение завершило процесс в течение разрешенного времени. Это также означает, что инициированный процесс, скорее всего, не был завершен полностью, и некоторые данные / действия могли быть сохранены / выполнены.
Эксперт говорит , что "initiated process most probably not completed fully"
,
Подробнее о моем сценарии: Мой сценарий добавляет продукты woocommerce с вариациями, используя wp_insert_post
метод, на мой веб-сайт WordPress . После добавления продуктов отображаются изображения новых продуктов.
Когда я добавляю 1 товар (40 вариантов), он завершает и отображает изображение товара. Когда я добавляю 6 продуктов (240 вариантов), я получаю сообщение об ошибке прямо в своем браузере.
Поэтому для дальнейшего тестирования этой проблемы я изменил свой код и переписал его, используя ajax, и добавил панель процессов, подобную системе. (Который увеличивает число для каждого варианта).
После запуска кода для 1 продукта (с 40 вариантами) номер процесса увеличивается до 40, и на нем отображается изображение продукта.
Когда я запускаю свой код для продукта 6, номер процесса увеличивается до 240, но он ничего не отображает, а когда я проверяю, он получает ошибку 504. ( jQuery.Ajax
раздел ошибок функций)
Таким образом, это заставляет меня думать, что запрос выполняется даже по таймаутам, но все же я не могу быть в этом уверен и ищу подробности, связанные с ошибкой тайм-аута шлюза 504, так как нет хорошей документации по этому вопросу.