gpt4 book ai didi

Python 异步内核 : "filedescriptor out of range in select()"

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:54 24 4
gpt4 key购买 nike

我有一些基于 asyncore lib 的 python 脚本,具有超过 3k 的传出套接字连接。由于连接限制 (1024),我无法使用 select(..),但 poll(..) 也无法正常工作:

asyncore.loop(use_poll=True)

通过这次调用,我的应用程序忽略了任何套接字事件。请注意,少于 1024 个套接字的 select() 工作正常。

我的问题在哪里?

最佳答案

首先,一个小修正。 use_poll=True 不会导致 asyncore 使用 epoll(2)。它导致它使用 poll(2)(此外,asyncore 的工作方式,没有理由尝试使用 epoll(2),因为 Python 级别的开销asyncore 压倒了使用套接字事件通知 API 的任何成本)。

其次,asyncore 的一个主要缺点是它使您暴露于特定于平台的怪癖的程度。对于为您处理select(2)poll(2) 之间的更多差异并且实际上支持epoll(2),这是 better in a number of other ways too , 查看 Twisted .

如果可以add more details对于您的问题,也许可以发现您在 asyncore 上遇到的具体问题,但是根据目前可用的信息,无法确定。 asyncore 的poll(2) 支持的非常基本的功能确实有效——即,它可以在普通情况下发送读取、写入和关闭通知。您的案例与普通案例有何不同?

关于Python 异步内核 : "filedescriptor out of range in select()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7997012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com