import gevent
from gevent.event import AsyncResult
import time
class Job(object):
def __init__(self, name):
self.name = name
def setter(job):
print 'starting'
gevent.sleep(3)
job.result.set('%s done' % job.name)
def waiter(job):
print job.result.get()
# event loop
running = []
for i in range(5):
print 'creating'
j = Job(i)
j.result = AsyncResult()
running.append(gevent.spawn(setter, j))
running.append(gevent.spawn(waiter, j))
print 'started greenlets, event loop go do something else'
time.sleep(5)
gevent.joinall(running)
GEvent оленья кожа на самом деле не начать до joinall
называетсяPython Event петля ж/GEvent
- Есть ли что-то, что бы начать/икру GEvent асинхронно (почему она не запускается сразу, как только мицелий называется)?
- Есть ли
select
/epoll на ходу зеленых, чтобы посмотреть, к какому соединению нужно добавить вместоjoinall()
?