扭曲和容易的插件开发

2024-05-16 19:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建这个应用程序,我正在考虑使用Twisted通过XMPP(Jabber,chat protocol)与用户进行通信,将来还可以使用其他通信方式。我的应用程序被设计成支持,或者更确切地说,依赖于(独立开发的)插件。大多数插件都会把大部分时间花在I/O上。理想情况下,所有插件都会对所有I/O使用延迟,并立即返回(即非阻塞),但我担心要求插件开发人员这样做会带来太多负担,并会减慢和阻碍插件开发。阻塞高级库更为常见(想想Facebook或Twitter库),在开发一个简单的10 loc Twitter库之前,让一个可能不太优秀的程序员仔细阅读Deferreds,听起来不像是我想做的事情。你知道吗

Twisted docs声明线程池的最大默认大小是10,并且我应该“在大幅度改变线程池大小之前,小心您了解线程及其资源使用情况”,我不认为我了解(理解),所以给每个插件一个自己的线程似乎也不是一个好主意。你知道吗

有什么建议吗?你知道吗

谢谢你的帮助。你知道吗

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


Tags: 用户版本插件应用程序开发人员方式时间chat
1条回答
网友
1楼 · 发布于 2024-05-16 19:13:02

不要使用线程。你知道吗

对于不熟悉Twisted的人来说,让事情变得简单的最好例子是Scrapy定义its plugin interfaces的方式。你从不看reactorDeferred或任何东西-你只是定义当某些页面被刮取时该做什么,作为回调。你知道吗

或者,不要太担心。有plenty of independently developed协议支持插件直接使用Twisted api;在实现传输协议的层,大多数能够有效地做到这一点的人在学习Twisted时没有问题。你知道吗

相关问题 更多 >