mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
save listener socket name so we can handle buffered keep-alive requests *after*
listener has been closed (i.e. stopped accepting during worker teardown)
This commit is contained in:
parent
5e8eeadc44
commit
62f6fb2d33
@ -32,9 +32,10 @@ class AsyncWorker(base.Worker):
|
|||||||
try:
|
try:
|
||||||
parser = http.RequestParser(self.cfg, client)
|
parser = http.RequestParser(self.cfg, client)
|
||||||
try:
|
try:
|
||||||
|
listener_name = listener.getsockname()
|
||||||
if not self.cfg.keepalive:
|
if not self.cfg.keepalive:
|
||||||
req = six.next(parser)
|
req = six.next(parser)
|
||||||
self.handle_request(listener, req, client, addr)
|
self.handle_request(listener_name, req, client, addr)
|
||||||
else:
|
else:
|
||||||
# keepalive loop
|
# keepalive loop
|
||||||
while True:
|
while True:
|
||||||
@ -78,14 +79,14 @@ class AsyncWorker(base.Worker):
|
|||||||
finally:
|
finally:
|
||||||
util.close(client)
|
util.close(client)
|
||||||
|
|
||||||
def handle_request(self, listener, req, sock, addr):
|
def handle_request(self, listener_name, req, sock, addr):
|
||||||
request_start = datetime.now()
|
request_start = datetime.now()
|
||||||
environ = {}
|
environ = {}
|
||||||
resp = None
|
resp = None
|
||||||
try:
|
try:
|
||||||
self.cfg.pre_request(self, req)
|
self.cfg.pre_request(self, req)
|
||||||
resp, environ = wsgi.create(req, sock, addr,
|
resp, environ = wsgi.create(req, sock, addr,
|
||||||
listener.getsockname(), self.cfg)
|
listener_name, self.cfg)
|
||||||
environ["wsgi.multithread"] = True
|
environ["wsgi.multithread"] = True
|
||||||
self.nr += 1
|
self.nr += 1
|
||||||
if self.alive and self.nr >= self.max_requests:
|
if self.alive and self.nr >= self.max_requests:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user