首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推荐的Python发布/订阅/调度模块?

推荐的Python发布/订阅/调度模块?
EN

Stack Overflow用户
提问于 2008-09-22 16:19:16
回答 7查看 31.2K关注 0票数 29

来自PyPubSub

Pypubsub为Python应用程序解耦其组件提供了一种简单的方法:应用程序的部分可以发布消息(有数据也可以没有数据),其他部分可以订阅/接收消息。这允许消息“发送者”和消息“侦听器”之间不知道对方:

  • 一个不需要导入另一个
  • 发送者不需要知道
    • “谁”会收到留言
    • 侦听器将如何处理数据,
    • 或者,即使任何侦听器都会获得消息数据。

  • 类似地,侦听器不需要担心消息从何而来。

这是一个很好的工具,用于实现模型-视图-控制器体系结构或任何促进其组件解耦的类似体系结构。

似乎有相当多的Python模块可以在web上发布/订阅,从PyPubSub到PyDispatcher,再到简单的“家用”类。

在比较不同的模块时,是否有特定的优缺点?对哪些模块进行了基准测试和比较?

提前感谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-09-22 18:44:43

PyDispatcher姜戈中被大量使用,并且它对我(以及整个Django社区,我猜)非常有效。

据我所知,存在一些性能问题:

  • PyDispatcher所做的参数检查很慢。
  • 未使用的连接有不必要的开销。

AFAIK非常不可能在一个中小型的应用程序中遇到这个问题。所以这些问题可能与你无关。如果您认为您需要每一磅的性能(过早的优化是所有问题的根源!),您可以查看在Django中对PyDispatcher所做的修改。

希望这能有所帮助。

票数 16
EN

Stack Overflow用户

发布于 2010-04-03 21:13:25

用于python的最佳分派包似乎是django内部的调度模块 (在文档中称为信号 )。它独立于django的其他部分,并且是简短的、有文档的、经过测试的,并且编写得非常好。

编辑:,我把这个项目分叉到独立信号工程中。

票数 4
EN

Stack Overflow用户

发布于 2013-06-04 12:45:37

下面是一个更新的版本:https://github.com/shaunduncan/smokesignal。烟雾信号是一个用于发送和接收信号的简单python库。它从django信号框架中获得了一些灵感,但它是一个通用的变体。示例:

代码语言:javascript
复制
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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/115844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档