Sono su un server condiviso (Siteground) e poiché il mio script PHP WordPress richiede più di 30 secondi, restituisce un timeout del gateway 504.
La mia query verrà eseguita e completata se non si verifica un ulteriore errore?
Modifica: ho chiesto perché ho ricevuto questo errore per il mio team di hosting, qui l'esperto di hosting Siteground ha spiegato il problema come segue:
Usiamo sia Apache + Nginx su tutti i nostri server. Apache viene utilizzato per il servizio Web principale, mentre Nginx viene utilizzato come proxy inverso e distribuire cache. Quando la risposta non può essere fornita dalla cache (di solito si riferisce al contenuto dinamico), viene fatta una richiesta da Nginx verso Apache. Questo quando Apache elabora la richiesta, la inoltra al tuo sito Web e, secondo la logica PHP, è possibile eseguire query MySQL o recuperare altri dati. Quando questo processo richiede troppo tempo e Apache non restituisce la risposta in modo tempestivo a Nginx, vedrai questo errore. In breve Apache non può soddisfare la richiesta poiché l'applicazione ha completato il processo entro il tempo consentito. Ciò significa anche che il processo avviato molto probabilmente non è stato completato completamente e alcuni dati / azioni potrebbero essere stati salvati / eseguiti.
L'esperto dice che "initiated process most probably not completed fully"
,
Maggiori dettagli sul mio scenario: La mia sceneggiatura aggiunge prodotti di woocommerce con variazioni usando il wp_insert_post
metodo al mio sito web wordpress. Dopo aver aggiunto i prodotti, visualizza le immagini dei nuovi prodotti aggiunti.
Quando aggiungo 1 prodotto (40 varianti), completa e visualizza l'immagine del prodotto. Quando aggiungo 6 prodotti (240 varianti), ricevo un errore direttamente nel mio browser.
Quindi, per testare ulteriormente questo problema, ho modificato il mio codice e l'ho riscritto usando Ajax e ho aggiunto una barra del processo come il sistema. (Che incrementa un numero per ogni variazione).
Dopo aver eseguito il codice per 1 prodotto (con 40 varianti), il numero di processo aumenta a 40 e visualizza l'immagine del prodotto.
Quando eseguo il mio codice per 6 prodotti, il numero di processo aumenta a 240, ma non visualizza nulla e quando controllo, viene visualizzato un errore 504. ( jQuery.Ajax
sezione errore funzione)
Quindi questo mi fa pensare che la query viene eseguita anche in timeout, ma non sono ancora in grado di esserne sicuro, e alla ricerca di dettagli tra cui un errore di timeout del gateway 504 poiché non esiste una buona documentazione in merito.