Setting Flask-SockerIO to run in Gunicorn Server

583 views Asked by At

I tried run the SocketIO server to run in Gunicorn in Ubuntu OS.

gevent
gevent-socketio
gunicorn

run.py

from views import app
from gevent import monkey
from socketio.server import SocketIOServer
import werkzeug.serving

monkey.patch_all()
PORT = 5000

@werkzeug.serving.run_with_reloader
def runServer()
    print 'Listening on http://127.0.0.1:%s and on port 10843 (flash policy server)' % PORT
    SocketIOServer(('', PORT), app, resource="socket.io").serve_forever()

if __name__ == '__main__':
    runServer()

Command Used -

gunicorn --worker-class socketio.sgunicorn.GeventSocketIOWorker run:app

The Connections seems to be getting Dropped and Reconnected Often Logs -

2013-12-24 22:40:59 [3331] [INFO] Starting gunicorn 0.13.4
2013-12-24 22:40:59 [3331] [INFO] Listening at: http://127.0.0.1:8000 (3331)
2013-12-24 22:40:59 [3331] [INFO] Using worker: socketio.sgunicorn.GeventSocketIOWorker
2013-12-24 22:40:59 [3334] [INFO] Booting worker with pid: 3334
2013-12-24 22:41:01 [3339] [INFO] Starting gunicorn 0.13.4
2013-12-24 22:41:01 [3339] [ERROR] Connection in use: ('127.0.0.1', 8000)
2013-12-24 22:41:01 [3339] [ERROR] Retrying in 1 second.
2013-12-24 22:41:02 [3339] [ERROR] Connection in use: ('127.0.0.1', 8000)
2013-12-24 22:41:02 [3339] [ERROR] Retrying in 1 second.
2013-12-24 22:41:03 [3339] [ERROR] Connection in use: ('127.0.0.1', 8000)
2013-12-24 22:41:03 [3339] [ERROR] Retrying in 1 second.
2013-12-24 22:41:04 [3339] [ERROR] Connection in use: ('127.0.0.1', 8000)
2013-12-24 22:41:04 [3339] [ERROR] Retrying in 1 second.
1

There are 1 answers

0
Saad On

You could comment this line @werkzeug.serving.run_with_reloader and it should work.