在gevent的fd上听POLLIN

时间:2011-08-24 20:21:52

标签: zeromq gevent

我想将ZeroMQ连接到gevent循环。使用ZeroMQ API,我可以获取套接字的fd。如何在greenlet中观察此套接字的POLLIN事件,而不阻塞其他greenlets?

3 个答案:

答案 0 :(得分:2)

在github / pypi上查看gevent-zeromq

答案 1 :(得分:1)

# 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或扩展它以支持您的用例。

答案 2 :(得分:0)

以下是ZeroMQ的示例。请求回复经纪人http://zguide.zeromq.org/py:rrbroker 它监听POLLIN事件,使用gevent-zeromq不会阻止其他线程。

这样做你在寻找什么?