21 lines
674 B
Python
21 lines
674 B
Python
from gevent.pywsgi import WSGIServer, WSGIHandler
|
|
from gevent import Timeout
|
|
class FDSafeHandler(WSGIHandler):
|
|
'''Our WSGI handler. Doesn't do much non-default except timeouts'''
|
|
def handle(self):
|
|
self.timeout = Timeout(120, Exception)
|
|
self.timeout.start()
|
|
try:
|
|
WSGIHandler.handle(self)
|
|
except Exception:
|
|
self.handle_error()
|
|
finally:
|
|
self.timeout.close()
|
|
|
|
def handle_error(self):
|
|
if v is self.timeout:
|
|
self.result = [b"Timeout"]
|
|
self.start_response("200 OK", [])
|
|
self.process_result()
|
|
else:
|
|
WSGIHandler.handle_error(self) |