mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
only patch select and socket with eventlet
This commit is contained in:
parent
451647d5ad
commit
8dbc10be8c
@ -16,25 +16,6 @@ from gunicorn import util
|
|||||||
from gunicorn import arbiter
|
from gunicorn import arbiter
|
||||||
from gunicorn.async.base import KeepaliveWorker
|
from gunicorn.async.base import KeepaliveWorker
|
||||||
|
|
||||||
__original_GreenPipe__ = greenio.GreenPipe
|
|
||||||
|
|
||||||
class _GreenPipe(__original_GreenPipe__):
|
|
||||||
|
|
||||||
def tell(self):
|
|
||||||
return self.fd.tell()
|
|
||||||
|
|
||||||
def seek(self, offset, whence=0):
|
|
||||||
fd = self.fd
|
|
||||||
self.read()
|
|
||||||
fd.seek(offset, whence)
|
|
||||||
|
|
||||||
_eventlet_patched = None
|
|
||||||
def patch_eventlet():
|
|
||||||
global _eventlet_patched
|
|
||||||
if _eventlet_patched:
|
|
||||||
return
|
|
||||||
greenio.GreenPipe = _GreenPipe
|
|
||||||
_eventlet_patched = True
|
|
||||||
|
|
||||||
class EventletWorker(KeepaliveWorker):
|
class EventletWorker(KeepaliveWorker):
|
||||||
|
|
||||||
@ -59,8 +40,7 @@ class EventletArbiter(arbiter.Arbiter):
|
|||||||
import eventlet
|
import eventlet
|
||||||
if eventlet.version_info < (0,9,7):
|
if eventlet.version_info < (0,9,7):
|
||||||
raise RuntimeError("You need eventlet >= 0.9.7")
|
raise RuntimeError("You need eventlet >= 0.9.7")
|
||||||
patch_eventlet()
|
eventlet.monkey_patch(all=False, socket=True, select=True)
|
||||||
eventlet.monkey_patch(all=True)
|
|
||||||
|
|
||||||
def init_worker(self, worker_age, pid, listener, app, timeout, conf):
|
def init_worker(self, worker_age, pid, listener, app, timeout, conf):
|
||||||
return EventletWorker(worker_age, pid, listener, app, timeout, conf)
|
return EventletWorker(worker_age, pid, listener, app, timeout, conf)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user