mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
pool!
This commit is contained in:
parent
ff5adc46a4
commit
5ea58c1af2
@ -29,6 +29,10 @@ class GEvent2Worker(Worker):
|
|||||||
'wsgi.run_once': False
|
'wsgi.run_once': False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(GEvent2Worker, self).__init__(*args, **kwargs)
|
||||||
|
self.worker_connections = self.cfg.worker_connections
|
||||||
|
self.pool = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup(cls):
|
def setup(cls):
|
||||||
@ -36,8 +40,7 @@ class GEvent2Worker(Worker):
|
|||||||
monkey.patch_all()
|
monkey.patch_all()
|
||||||
|
|
||||||
def handle_request(self, req):
|
def handle_request(self, req):
|
||||||
gevent.getcurrent()
|
self.pool.spawn(self.handle, req)
|
||||||
gevent.spawn(self.handle, req)
|
|
||||||
|
|
||||||
def handle(self, req):
|
def handle(self, req):
|
||||||
handle = wsgi.WSGIHandler(req)
|
handle = wsgi.WSGIHandler(req)
|
||||||
@ -55,6 +58,8 @@ class GEvent2Worker(Worker):
|
|||||||
|
|
||||||
http = core.http()
|
http = core.http()
|
||||||
http.set_gencb(self.handle_request)
|
http.set_gencb(self.handle_request)
|
||||||
|
self.pool = Pool(self.worker_connections)
|
||||||
|
|
||||||
self.application = self.wsgi
|
self.application = self.wsgi
|
||||||
acceptor = gevent.spawn(http.accept, self.socket.fileno())
|
acceptor = gevent.spawn(http.accept, self.socket.fileno())
|
||||||
|
|
||||||
@ -67,7 +72,7 @@ class GEvent2Worker(Worker):
|
|||||||
gevent.kill(acceptor)
|
gevent.kill(acceptor)
|
||||||
break
|
break
|
||||||
gevent.sleep(0.1)
|
gevent.sleep(0.1)
|
||||||
|
pool.join(timeout=self.timeout)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user