2016-05-10 15 views
0

Ich rufe eine API mit file_get_contents, die eher sporadisch ist, irgendwann der Anruf gibt Daten wirklich schnell (1-2 Sekunden) zu anderen Zeiten dauert ein bisschen länger (30 Sekunden plus) führt zu einem 504 Gateway-Timeout, hier ist die Header-Rückkehr:504 Gateway-Timeout - php

„Array ([0] => HTTP/1.1 504 GATEWAY_TIMEOUT [1] => Content-Length: 0 [2] => Anschluss: Schließen)“

Ich habe versucht Einstellung - set_time_limit (0), aber dies scheint keine Wirkung zu haben, gibt es eine andere Möglichkeit, diese Zeitüberschreitung zu stoppen, dh warten Sie länger, um eine Rückkehr von der API zu bekommen?

Cheers,

Matt

+0

Der Server, an den Sie eine Anfrage senden, benötigt zu viel, um die Daten zu verarbeiten, die Sie ihm senden, es ist nicht auf Ihrer Seite. Sie müssen das Zeitlimit auf Server erhöhen –

+0

Erhöhen Sie das Timeout-Limit auf meinem Server, wenn ja, wissen Sie, wie ich das tue, mein Server ist Linux-Centos läuft PHP? – user1419810

+0

Welchen Server benutzen Sie? Apache? nginx? –

Antwort

1

In Bezug auf 504 Fehler, entweder nimmt PHP zu lange das Skript oder Ihre Datenbank-Prozess große Abfrage zu verarbeiten. Wie in den Kommentaren besprochen, scheint es, als ob MySQL Timeout ist.

Was wirst du tun, ist Timeout in my.cnf zu erhöhen (die MySQL Konfigurationsdatei ist) und diese Codezeile ändern wait_timeout auf einen vernünftigen Wert lässt, sagen 28000.

Das sollte es tun.

Verwandte Themen