来自PyPubSub
Pypubsub为Python应用程序解耦其组件提供了一种简单的方法:应用程序的部分可以发布消息(有数据也可以没有数据),其他部分可以订阅/接收消息。这允许消息“发送者”和消息“侦听器”之间不知道对方:
这是一个很好的工具,用于实现模型-视图-控制器体系结构或任何促进其组件解耦的类似体系结构。
似乎有相当多的Python模块可以在web上发布/订阅,从PyPubSub到PyDispatcher,再到简单的“家用”类。
在比较不同的模块时,是否有特定的优缺点?对哪些模块进行了基准测试和比较?
提前感谢
发布于 2008-09-22 18:44:43
PyDispatcher在姜戈中被大量使用,并且它对我(以及整个Django社区,我猜)非常有效。
据我所知,存在一些性能问题:
AFAIK非常不可能在一个中小型的应用程序中遇到这个问题。所以这些问题可能与你无关。如果您认为您需要每一磅的性能(过早的优化是所有问题的根源!),您可以查看在Django中对PyDispatcher所做的修改。
希望这能有所帮助。
发布于 2010-04-03 21:13:25
用于python的最佳分派包似乎是django内部的调度模块 (在文档中称为信号 )。它独立于django的其他部分,并且是简短的、有文档的、经过测试的,并且编写得非常好。
编辑:,我把这个项目分叉到独立信号工程中。
发布于 2013-06-04 12:45:37
下面是一个更新的版本:https://github.com/shaunduncan/smokesignal。烟雾信号是一个用于发送和接收信号的简单python库。它从django信号框架中获得了一些灵感,但它是一个通用的变体。示例:
from time import sleep
import smokesignal
@smokesignal.on('debug')
def verbose(val):
print "#", val
def main():
for i in range(100):
if i and i%10==0:
smokesignal.emit('debug', i)
sleep(.1)
main()https://stackoverflow.com/questions/115844
复制相似问题