【发布时间】:2011-11-03 03:38:26
【问题描述】:
我想将 ZeroMQ 连接到 gevent 循环。使用 ZeroMQ API,我可以获取套接字的 fd。如何在不阻塞其他 greenlet 的情况下在 greenlet 中查看此套接字的 POLLIN 事件?
【问题讨论】:
我想将 ZeroMQ 连接到 gevent 循环。使用 ZeroMQ API,我可以获取套接字的 fd。如何在不阻塞其他 greenlet 的情况下在 greenlet 中查看此套接字的 POLLIN 事件?
【问题讨论】:
# for gevent >= 1.0
hub = gevent.get_hub()
watcher = hub.loop.io(fd, 1) # 1 = READ, 2 = WRITE, 3 = READ|WRITE
hub.wait(watcher)
# fd is now ready for reading
但是,最好弄清楚如何为此使用 gevent-zeromq 或扩展它以支持您的用例。
【讨论】:
这是来自 ZeroMQ 的示例。请求-回复经纪人http://zguide.zeromq.org/py:rrbroker 它监听 POLLIN 事件,使用 gevent-zeromq 不会阻塞其他线程。
这是你要找的吗?
【讨论】:
查看 github/pypi 上的 gevent-zeromq
【讨论】: