在 gevent 中的 fd 上监听 POLLIN

发布于 2024-12-01 12:27:49 字数 107 浏览 2 评论 0原文

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

I want to hook up ZeroMQ to the gevent loop. Using the ZeroMQ API, I can grab an fd for the socket. How do I watch this socket for POLLIN events in a greenlet, without blocking the other greenlets?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

乞讨 2024-12-08 12:27:49

在 github/pypi 上查看 gevent-zeromq

Check out gevent-zeromq on github/pypi

陌上芳菲 2024-12-08 12:27:49
# 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 来实现此目的或扩展它以支持您的用例。

# 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

However it would be better to figure out how to use gevent-zeromq for this or extend it to support your use case.

腻橙味 2024-12-08 12:27:49

这是来自 ZeroMQ 的示例。请求-回复代理 http://zguide.zeromq.org/py:rrbroker
它监听 POLLIN 事件,并且使用 gevent-zeromq 不会阻塞其他线程。

这样做你正在寻找什么?

Here is example from ZeroMQ. Request-reply broker http://zguide.zeromq.org/py:rrbroker
It listen for POLLIN event and with using gevent-zeromq will not block other threads.

Do this what are you was looking for?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文