本文整理匯總了Python中eventlet.greenio.GreenSocket.setblocking方法的典型用法代碼示例。如果您正苦於以下問題:Python GreenSocket.setblocking方法的具體用法?Python GreenSocket.setblocking怎麽用?Python GreenSocket.setblocking使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類eventlet.greenio.GreenSocket
的用法示例。
在下文中一共展示了GreenSocket.setblocking方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: run
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
def run(self):
acceptors = []
for sock in self.sockets:
gsock = GreenSocket(sock)
gsock.setblocking(1)
hfun = partial(self.handle, gsock)
acceptor = eventlet.spawn(_eventlet_serve, gsock, hfun,
self.worker_connections)
acceptors.append(acceptor)
eventlet.sleep(0.0)
while self.alive:
self.notify()
eventlet.sleep(1.0)
self.notify()
try:
with eventlet.Timeout(self.cfg.graceful_timeout) as t:
[a.kill(eventlet.StopServe()) for a in acceptors]
[a.wait() for a in acceptors]
except eventlet.Timeout as te:
if te != t:
raise
[a.kill() for a in acceptors]
示例2: EventletWorker
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
class EventletWorker(AsyncWorker):
@classmethod
def setup(cls):
import eventlet
if eventlet.version_info < (0,9,7):
raise RuntimeError("You need eventlet >= 0.9.7")
eventlet.monkey_patch(os=False)
def init_process(self):
hubs.use_hub()
super(EventletWorker, self).init_process()
def timeout_ctx(self):
return eventlet.Timeout(self.cfg.keepalive, False)
def run(self):
self.socket = GreenSocket(family_or_realsock=self.socket.sock)
self.socket.setblocking(1)
self.acceptor = eventlet.spawn(eventlet.serve, self.socket,
self.handle, self.worker_connections)
while self.alive:
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s", self)
break
eventlet.sleep(1.0)
self.notify()
with eventlet.Timeout(self.timeout, False):
eventlet.kill(self.acceptor, eventlet.StopServe)
示例3: run
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
def run(self):
acceptors = []
for sock in self.sockets:
s = GreenSocket(family_or_realsock=sock)
s.setblocking(1)
hfun = partial(self.handle, s)
acceptor = eventlet.spawn(eventlet.serve, s, hfun,
self.worker_connections)
acceptors.append(acceptor)
while self.alive:
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s", self)
break
eventlet.sleep(1.0)
self.notify()
try:
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]
示例4: EventletWorker
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
class EventletWorker(AsyncWorker):
@classmethod
def setup(cls):
import eventlet
if eventlet.version_info < (0,9,7):
raise RuntimeError("You need eventlet >= 0.9.7")
eventlet.monkey_patch(os=False)
def init_process(self):
hubs.use_hub()
super(EventletWorker, self).init_process()
def timeout_ctx(self):
return eventlet.Timeout(self.cfg.keepalive, False)
def acceptor(self, pool):
try:
while self.alive:
try:
client, addr = self.socket.accept()
pool.spawn_n(self.handle, client, addr)
except socket.error, e:
if e[0] not in (errno.EAGAIN, errno.ECONNABORTED):
raise
if pool.running() > self.worker_connections:
continue
try:
hubs.trampoline(self.socket.fileno(), read=True,
timeout=self.timeout)
except eventlet.Timeout:
pass
except eventlet.StopServer:
pool.waitall()
def run(self):
self.socket = GreenSocket(family_or_realsock=self.socket.sock)
self.socket.setblocking(1)
pool = eventlet.GreenPool(self.worker_connections)
acceptor = eventlet.spawn(self.acceptor, pool)
try:
while self.alive:
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s" % self)
server.stop()
break
eventlet.sleep(0.1)
except KeyboardInterrupt:
pass
with eventlet.Timeout(self.timeout, False):
eventlet.kill(acceptor, eventlet.StopServe)
示例5: Worker
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
class Worker(object):
def __init__(self, sock):
self.socket = sock
def init_worker(self):
hubs.use_hub()
def run(self):
self.socket = GreenSocket(family_or_realsock=self.socket.sock)
self.socket.setblocking(1)
self.acceptor = eventlet.spawn(eventlet.serve, self.socket, server.handle, int(config.get("MAX_CONNECTIONS")))
while True:
eventlet.sleep(0.1)
with eventlet.Timeout(30, False):
eventlet.kill(self.acceptor, eventlet.StopServe)
示例6: run
# 需要導入模塊: from eventlet.greenio import GreenSocket [as 別名]
# 或者: from eventlet.greenio.GreenSocket import setblocking [as 別名]
def run(self):
acceptors = []
for sock in self.sockets:
s = GreenSocket(family_or_realsock=sock)
s.setblocking(1)
hfun = partial(self.handle, s)
acceptor = eventlet.spawn(eventlet.serve, s, hfun,
self.worker_connections)
while self.alive:
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s", self)
break
eventlet.sleep(1.0)
self.notify()
with eventlet.Timeout(self.cfg.graceful_timeout, False):
[eventlet.kill(a, eventlet.StopServe) for a in acceptors]