diff options
author | Code Raguet <ignacio.code@gmail.com> | 2013-07-04 18:51:36 (GMT) |
---|---|---|
committer | Code Raguet <ignacio.code@gmail.com> | 2013-07-04 18:58:59 (GMT) |
commit | 2f4887b4394f2d093309f6c24daea6b46b4478d4 (patch) | |
tree | 29d885e9454d6f86be649f482f322a1dde33a08f /CeibalEncuestaWeb/CeibalEncuesta.py | |
parent | 57444bf738bab7d367d552b59a20943b607a029b (diff) |
add webser and venv requirements (for pip)
Diffstat (limited to 'CeibalEncuestaWeb/CeibalEncuesta.py')
-rw-r--r-- | CeibalEncuestaWeb/CeibalEncuesta.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/CeibalEncuestaWeb/CeibalEncuesta.py b/CeibalEncuestaWeb/CeibalEncuesta.py index c9868cd..51d0209 100644 --- a/CeibalEncuestaWeb/CeibalEncuesta.py +++ b/CeibalEncuestaWeb/CeibalEncuesta.py @@ -1,6 +1,53 @@ +import socket +from multiprocessing import Process +from time import sleep + +from flask import Flask + PORT = 9004 print 'Opening web server' + +class WebServer(object): + + def start(self): + + self.p = Process(target=self._start) + self.p.start() + + try: + retry = 0 + while not self.is_alive(): + if retry == 5: + raise Exception("Webserver start failed") + retry += 1 + sleep(1) + finally: + self.stop() + + def is_alive(self): + res = False + + try: + s = socket.socket() + s.connect(("localhost", PORT)) + res = True + except socket.error: + pass + finally: + s.close() + + return res + + def stop(self): + self.p.terminate() + + def _start(self): + webserver = Flask("API server") + webserver.run('localhost', PORT) + + if __name__ == '__main__': print "Opening browser" + |