2017-05-29 3 views
0

Ich baue eine Nodejs-Anwendung mit expressjs framework.Recently ich konfrontiert mit einigen kritischen Problem, wo eine Route-Methode 504 Timeout ist, da es zu viel Zeit braucht, um die Ausgabe von a bestimmte Abfrage.Ich optimiere die Abfrage und die Datenbank, aber keine Verwendung.Es immer noch 504 Timeout.Meine Frage ist, kann ich die Route-Methode neu laden, wenn es 504 Timeout bekommt?Reload eine Route Methode, wenn 504 (Gateway Timeout) passiert

+0

Normalerweise eine 504 Micro Daemon und kommunizieren erstellen Fehler kann auftreten, wenn * Dieser Server keine zeitnahe Antwort von einem Upstream-Server erhalten hat, auf den er zugegriffen hat, um mit Ihrer HTTP-Anfrage umzugehen *, bei der Ihre Abfrageoptimierung zu einem gewissen Grad beitragen könnte. –

Antwort

0

Was meinst du mit reload? Sie können dieselbe Anfrage an diese Route richten und sie wird erneut gestartet. Und wenn es dieselbe Zeit zu verarbeiten hat, wird es erneut Zeitüberschreitung erhalten. Zur Lösung dieses ptoblem Sie brauchen:

  • getrennten Prozess schaffen, die lange Arbeit tun (do db Anfrage)
  • durchführen Überprüfung der langen Arbeitsprozess nicht erneut zu starten, bis es
  • Rückkehr Antwort-fertig zu warten, oder Ergebnis, wenn das Ergebnis bereit ist

Sie können Prozess jedes Mal starten, oder Sie können über eine Art von rpc es (zum Beispiel jSON-RPC)

Verwandte Themen