发布-订阅模式

时间:2021-04-16 11:41:15   收藏:0   阅读:0
模拟订阅报纸:
技术图片
技术图片
技术图片
消费者与出版社之间没有联系,甚至互不相识,但报纸却从出版社到达了消费者手中,发布-订阅模式就是通过模拟订阅报纸,实现消息在模块之间的传递、模块与模块之间的调用。

Python样例
from blinker import Namespace


# 创建一个Signal,其名为test
my_singal = Namespace()
test = my_singal.signal(test)


# 创建一个方法singal_sender,内部包含两个发送者
def singal_sender():
    # 发送者test1
    test.send(test1, data1=1)
    # 发送者test2
    test.send(test2, data2=2)
    print(singal_sender() 执行完毕)


# 订阅者,指定接收test1
@test.connect_via(test1)
def subscriber(sender, **kwargs):
    print("指定接收test1", sender, kwargs)

# 订阅者,指定接收test2
@test.connect_via(test2)
def subscriber(sender, **kwargs):
    print("指定接收test2", sender, kwargs)

# 订阅者,不指定接收,全部发布都要接收
@test.connect
def subscriber(sender, **kwargs):
    print("不指定接收", sender, kwargs)

singal_sender()

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!