Estoy en un servidor compartido (Siteground), y dado que mi script PHP de WordPress tarda más de 30 segundos, devuelve un tiempo de espera de 504 Gateway.
¿Mi consulta se ejecutará y completará si no encuentra un error adicional?
Editar: pregunté por qué recibí este error a mi equipo de alojamiento, aquí el experto en alojamiento de Siteground explicó el problema de la siguiente manera:
Usamos Apache + Nginx en todos nuestros servidores. Apache se usa para el servicio web principal, mientras que el Nginx se usa como proxy inverso y caché de distribución. Cuando la respuesta no se puede servir desde el caché (generalmente esto se refiere al contenido dinámico), se realiza una solicitud de Nginx hacia Apache. Esto cuando Apache procesa la solicitud, la reenvía a su sitio web y de acuerdo con la lógica de PHP, se pueden realizar consultas MySQL u otros datos recuperados. Cuando este proceso lleva demasiado tiempo y Apache no devuelve la respuesta de manera oportuna a Nginx, verá este error. En resumen, Apache no puede atender la solicitud ya que la aplicación completó el proceso dentro del tiempo permitido. Esto también significa que el proceso iniciado probablemente no se completó completamente y algunos datos / acciones podrían haberse guardado / ejecutado.
El experto dice que "initiated process most probably not completed fully"
,
Más detalles sobre mi escenario: mi script agrega productos de WooCommerce con variaciones utilizando el wp_insert_post
método a mi sitio web de WordPress. Después de agregar productos, muestra las imágenes de los productos recién agregados.
Cuando agrego 1 producto (40 variaciones), se completa y muestra la imagen del producto. Cuando agrego 6 productos (240 variaciones), recibo un error directamente en mi navegador.
Entonces, para probar aún más este problema, modifiqué mi código y lo reescribí usando ajax y agregué una barra de proceso como sistema. (Que incrementa un número para cada variación).
Después de ejecutar el código para 1 producto (con 40 variaciones), el número de proceso aumenta a 40 y muestra la imagen del producto.
Cuando ejecuto mi código para 6 productos, el número de proceso aumenta a 240, pero no muestra nada, y cuando verifico, recibe un error 504. ( jQuery.Ajax
sección de error de función)
Entonces, esto me hace pensar que la consulta se ejecuta incluso cuando se agota el tiempo de espera, pero aún no puedo estar seguro, y estoy buscando detalles detrás del error de tiempo de espera de la puerta de enlace 504 ya que no hay buena documentación al respecto.