2015-04-23 11 views
6

Kürzlich entwickle ich eine Flask-Website/API-App für Windows Server und sah ein seltsames Problem.Kolben hängt auf Anfrage

Wenn jemand eine Anfrage an eine URL, gelegentlich (wie 3-4 von 10 Mal) wird es hängen. Alles, was ich tun muss, um diese Anfrage zu erfüllen, ist die Befehlszeile, wo ich den Flask-Server anspringe und ein Unterbrechungssignal sende. (Ich bin auf Windows, also im Grunde "Strg + C"). Ich habe eine Weile gegoogelt, aber ich glaube, dass keine der Lösungen zutrifft. Hier ist, was ich versucht habe:

  • hinzufügen threaded=true in app.run() als here vorgeschlagen hat nicht funktioniert.
  • In This link, Autor erwähnt, dass einige Browser mehrere Anfragen zur gleichen Zeit auslösen und den Server verwirrt. Dies trifft wahrscheinlich auch hier nicht zu, da ich versucht habe, eine Anfrage von Pythons requests Bibliothek zu machen und immer noch den Server hängen zu sehen.
  • Verwenden Sie Gevent oder Tornado, um App zu bedienen, wie in here erwähnt, hat auch nicht funktioniert.
  • Versucht sowohl auf Python 3 und Python 2.7, hatte das gleiche Problem.

Ich habe so ziemlich das gleiche Setup auf meinem lokalen Rechner (win7 64bit) und alles funktioniert gut. (Der Server mit dem Problem ist Windows Server 2012)

Ich würde gerne etwas Code teilen, aber ich bezweifle stark, dass es Code-Problem wäre, da es lokal einwandfrei funktioniert.

Hat jemand das gleiche schon einmal erlebt?

+0

Der Server, der in Flask enthalten ist, ist nur für die Entwicklung. Verwenden Sie gunicorn oder uwsgi, um den Server in der Produktion auszuführen. – nathancahill

+0

@nathanackhill Ich verstehe das, ich bin nur noch auf der Debug-Stufe. Und wie ich im Thread erwähnt habe, bin ich auf Windows, so dass ich nicht von Gunicorn oder Nginx auf Windows verfügbar bin ... – xbb

+0

Haben Sie das Problem mit der Beispiel-App hier: http://flask.pooco.org / – nathancahill

Antwort

4

Nach der Überprüfung mit Kollegen (denke, ich hätte es früher getan haben ..), scheint es, dass das Befehlszeilen-Tool selbst das Problem ist ... (kann es nicht glauben). Nachdem es als Windows-Task geplant wurde, gab es ein paar hundert Anfragen und es gab überhaupt kein Problem.