mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Updates to fix errors under load.
This commit is contained in:
parent
f4f3429d15
commit
34db4a6669
@ -96,7 +96,7 @@ class Arbiter(object):
|
|||||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
|
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
|
||||||
sock.bind(address)
|
sock.bind(address)
|
||||||
sock.listen(64)
|
sock.listen(2048)
|
||||||
return sock
|
return sock
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
|
|
||||||
import BaseHTTPServer
|
import errno
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import select
|
import select
|
||||||
import signal
|
import signal
|
||||||
|
import socket
|
||||||
|
|
||||||
import http
|
import http
|
||||||
import util
|
import util
|
||||||
@ -36,15 +37,23 @@ class Worker(object):
|
|||||||
if ret[0]:
|
if ret[0]:
|
||||||
break
|
break
|
||||||
|
|
||||||
(conn, addr) = self.socket.accept()
|
# Accept until we hit EAGAIN
|
||||||
log.info("Client connected: %s:%s" % addr)
|
while True:
|
||||||
conn.setblocking(1)
|
try:
|
||||||
try:
|
(conn, addr) = self.socket.accept()
|
||||||
self.handle(conn, addr)
|
except socket.error, e:
|
||||||
except:
|
if e[0] in [errno.EAGAIN, errno.EINTR]:
|
||||||
log.exception("Error processing request.")
|
continue # Jump back to select
|
||||||
finally:
|
raise # Uh oh!
|
||||||
conn.close()
|
|
||||||
|
#log.info("Client connected: %s:%s" % addr)
|
||||||
|
conn.setblocking(1)
|
||||||
|
try:
|
||||||
|
self.handle(conn, addr)
|
||||||
|
except:
|
||||||
|
log.exception("Error processing request.")
|
||||||
|
finally:
|
||||||
|
conn.close()
|
||||||
|
|
||||||
def handle(self, conn, client):
|
def handle(self, conn, client):
|
||||||
while True:
|
while True:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user