2015-04-23 16 views
6

Recentemente sto sviluppando un'applicazione Flask website/api su Windows Server e ho visto alcuni problemi strani in corso.Flask Hangs on request

Quando qualcuno invia una richiesta a un URL, occasionalmente (come 3-4 volte su 10) si bloccherà. Tutto quello che devo fare per far passare quella richiesta è andare alla riga di comando dove accendo il server Flask, e invio un segnale di interruzione. (Sono su Windows, quindi in pratica "Ctrl + C"). Ho cercato su Google per un po ', ma credo che nessuna delle soluzioni sia valida. Ecco quello che ho provato:

  • aggiungere threaded=true in app.run() come suggerito here non ha funzionato.
  • In This link, l'autore ha affermato che alcuni browser possono attivare più richieste contemporaneamente e rendere confuso il server. Questo probabilmente non si applica qui poiché ho provato a fare richiesta dalla libreria di Python requests e ancora vedere il server si blocca.
  • Utilizzare Gevent o Tornado per servire l'app come indicato in here non ha funzionato neanche.
  • Provato entrambi su python 3 e python 2.7, ha avuto lo stesso problema.

Ho praticamente lo stesso setup sulla mia macchina locale (win7 64 bit) e tutto funziona correttamente. (Il server che presenta problemi è Windows Server 2012)

Mi piacerebbe condividere un po 'di codice, ma dubito fortemente che sarebbe un problema di codice, poiché funziona perfettamente bene localmente.

Qualcuno ha mai provato la stessa cosa?

+0

Il server incluso con Flask è solo per lo sviluppo. Usa gunicorn o uwsgi per eseguire il server in produzione. – nathancahill

+0

@nathancahill Capisco che, sono ancora in fase di debug. E come ho detto nel thread, sono su Windows quindi non sono a conoscenza di gunicorn o nginx disponibili su Windows ... – xbb

+0

Hai il problema con l'app di esempio qui: http://flask.pocoo.org / – nathancahill

risposta

4

Dopo aver controllato con un collega (suppongo che avrei dovuto farlo prima ...), sembra che lo stesso strumento da riga di comando sia il problema ... (non ci posso credere). Dopo averlo configurato per l'esecuzione come attività pianificata di Windows, ha effettuato alcune centinaia di richieste e non ha riscontrato alcun problema.