gpt4 book ai didi

python - 扭曲而简单的插件开发

转载 作者:行者123 更新时间:2023-12-01 05:40:18 26 4
gpt4 key购买 nike

我正在创建这个应用程序,我正在考虑使用 Twisted 通过 XMPP(Jabber,聊天协议(protocol))与用户进行通信,并且将来也有可能使用其他通信方式。我的应用程序旨在支持,或者更确切地说,依赖(独立开发的)插件。大多数插件将大部分时间花在 I/O 上。理想情况下,所有插件都将 Deferreds 用于所有 I/O 并立即返回(即非阻塞),但我担心要求插件开发人员这样做是一个太大的负担,并且会减慢并阻止插件 -发展。阻止高级库更为常见(想想 Facebook 或 Twitter 库),并且在开发一个简单的 10 loc Twitter 库之前要求一个可能不太优秀的编码员阅读 Deferreds 听起来不像我想做的事情。

Twisted 文档声明 threadPool 的最大默认大小为 10,并且我应该“在彻底改变线程池大小之前小心了解线程及其资源使用情况”,但我认为我没有这样做(理解),所以给每个插件一个自己的线程似乎也不是一个好主意。

有什么建议吗?

感谢您的帮助。

[编辑] 该应用程序的独立(非服务器)版本也将可用。大多数插件开发人员可能会使用独立版本。这就是为什么我担心开发人员会选择简单的出路,并创建阻塞插件。

最佳答案

不要使用线程。

对于不熟悉 Twisted 的人来说,如何让事情变得简单的最好例子就是 Scrapy 。定义its plugin interfaces 。您永远不会查看reactorDeferred或任何东西 - 您只需定义当某些页面被抓取时要做什么,作为回调。

或者,不要太担心。有plenty of independently developed直接使用 Twisted API 的协议(protocol)支持插件;在实现传输协议(protocol)的层面上,大多数能够有效做到这一点的人学习 Twisted 都没有问题。

关于python - 扭曲而简单的插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17722680/

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