2014-07-22 18 views
5

Sto eseguendo un server web per i flask, funziona correttamente durante i test, ma ora si blocca almeno una volta al giorno. Tutto quello che devo fare è riavviarlo e funzionerà di nuovo. C'è un buon modo per monitorarlo e forse dovrei semplicemente ucciderlo/riavviarlo ogni volta che fallisce. Le persone uccidono il loro server web periodicamente per evitare che succeda questo genere di cose?Python Flask webserver non risponde

+0

Si sta utilizzando il server Web per i flask nella distribuzione? –

+3

Per espandere la domanda di Bartosz: Il server Web predefinito che viene fornito con la bottiglia è solo per lo sviluppo, non è adatto per la produzione. Per distribuire le applicazioni di flask, è necessario un server WSGI migliore. Vedi i documenti: http://flask.pocoo.org/docs/deploying/ – Daniel

+0

è la mia applicazione web per i flask. Fondamentalmente lo avvio e lo lascio funzionare. Non sto usando nient'altro (ngix, apache). –

risposta

3

Se si utilizza il server Web Flask predefinito: Non farlo. È destinato SOLO allo sviluppo.

risorsa Come ulteriore vale la pena di leggere questi due post del blog sulla distribuzione di un'applicazione Flask:

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux-even-on-the-raspberry-pi http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud

E per i processi di monitoraggio nel vostro server web, si potrebbe dare Watchy una prova:

http://redbrain.github.io/watchy/

2

Mentre il server Web predefinito potrebbe non essere il migliore per la produzione, probabilmente non è la causa principale di gli arresti. Lo uso in un ambiente di produzione su una rete interna ed è molto stabile. Prima di incolpare il server Web, verificare che il codice possa gestire le richieste che potrebbero entrare in collisione tra loro. Nel mio caso ho avuto molti problemi di stabilità prima di istituire il blocco delle tabelle di basi di dati in modo che alcune richieste venissero bloccate fino a quando le richieste precedenti non fossero state fatte con gli aggiornamenti. Flask non può assicurarsi che il tuo codice sia sicuro. E cambiare il server web non sarà di aiuto se non lo fosse.

0

Nel mio caso, ho bisogno di cambiare worker_class da 'sync' a 'gevent', poiché eseguo alcune attività asincrone. Quindi non si blocca più.