mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Merge pull request #532 from kevingessner/master
eventlet: after reaching max_requests, wait up to the graceful_timeout for currently-running requests to complete. fixes #511
This commit is contained in:
commit
438a0e1c66
@ -40,6 +40,9 @@ class EventletWorker(AsyncWorker):
|
|||||||
|
|
||||||
super(EventletWorker, self).handle(listener, client, addr)
|
super(EventletWorker, self).handle(listener, client, addr)
|
||||||
|
|
||||||
|
if not self.alive:
|
||||||
|
raise eventlet.StopServe()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
acceptors = []
|
acceptors = []
|
||||||
for sock in self.sockets:
|
for sock in self.sockets:
|
||||||
@ -60,5 +63,10 @@ class EventletWorker(AsyncWorker):
|
|||||||
eventlet.sleep(1.0)
|
eventlet.sleep(1.0)
|
||||||
|
|
||||||
self.notify()
|
self.notify()
|
||||||
with eventlet.Timeout(self.cfg.graceful_timeout, False):
|
try:
|
||||||
[eventlet.kill(a, eventlet.StopServe) for a in acceptors]
|
with eventlet.Timeout(self.cfg.graceful_timeout) as t:
|
||||||
|
[a.wait() for a in acceptors]
|
||||||
|
except eventlet.Timeout as te:
|
||||||
|
if te != t:
|
||||||
|
raise
|
||||||
|
[a.kill() for a in acceptors]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user