mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
eventlet worker: ALREADY_HANDLED -> WSGI_LOCAL
Eventlet v0.30.3+ removed wsgi.ALREADY_HANDLED in favor of `wsgi.WSGI_LOCAL.already_handled: bool` Sorry, this breaking change happened during only patch version increase 0.30.2 -> 0.30.3 https://github.com/eventlet/eventlet/issues/543 https://github.com/eventlet/eventlet/pull/544
This commit is contained in:
parent
cf55d2cec2
commit
6a8ebb4844
@ -17,11 +17,16 @@ else:
|
|||||||
|
|
||||||
from eventlet import hubs, greenthread
|
from eventlet import hubs, greenthread
|
||||||
from eventlet.greenio import GreenSocket
|
from eventlet.greenio import GreenSocket
|
||||||
from eventlet.wsgi import ALREADY_HANDLED as EVENTLET_ALREADY_HANDLED
|
import eventlet.wsgi
|
||||||
import greenlet
|
import greenlet
|
||||||
|
|
||||||
from gunicorn.workers.base_async import AsyncWorker
|
from gunicorn.workers.base_async import AsyncWorker
|
||||||
|
|
||||||
|
# ALREADY_HANDLED is removed in 0.30.3+ now it's `WSGI_LOCAL.already_handled: bool`
|
||||||
|
# https://github.com/eventlet/eventlet/pull/544
|
||||||
|
EVENTLET_WSGI_LOCAL = getattr(eventlet.wsgi, "WSGI_LOCAL", None)
|
||||||
|
EVENTLET_ALREADY_HANDLED = getattr(eventlet.wsgi, "ALREADY_HANDLED", None)
|
||||||
|
|
||||||
|
|
||||||
def _eventlet_socket_sendfile(self, file, offset=0, count=None):
|
def _eventlet_socket_sendfile(self, file, offset=0, count=None):
|
||||||
# Based on the implementation in gevent which in turn is slightly
|
# Based on the implementation in gevent which in turn is slightly
|
||||||
@ -125,6 +130,10 @@ class EventletWorker(AsyncWorker):
|
|||||||
patch_sendfile()
|
patch_sendfile()
|
||||||
|
|
||||||
def is_already_handled(self, respiter):
|
def is_already_handled(self, respiter):
|
||||||
|
# eventlet >= 0.30.3
|
||||||
|
if getattr(EVENTLET_WSGI_LOCAL, "already_handled", None):
|
||||||
|
raise StopIteration()
|
||||||
|
# eventlet < 0.30.3
|
||||||
if respiter == EVENTLET_ALREADY_HANDLED:
|
if respiter == EVENTLET_ALREADY_HANDLED:
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
return super().is_already_handled(respiter)
|
return super().is_already_handled(respiter)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user