blinker 简单试用
以前简单说过blinker的能力,以下是一个简单试用说明
简单试用
- app.py
from blinker import signal
# 定义发送的
class Processor:
def __init__(self,name):
self.name = name
def go(self, data):
ready = signal('ready')
ready.send(self, data=data)
print("Processing.")
complete = signal('complete')
complete.send(self, data=data)
return self._data
def get_data(self):
return self._data
# 定义消息接收处理
def subscriber(sender, data):
print(f"Subscriber received data: {data}")
sender._data = data
print(f"Data saved to {sender.__dict__}.")
ready = signal('ready')
ready.connect(subscriber)
processor_a = Processor('a')
processor_a.go("Hello")
- 效果

- 基于装饰器模式的
from blinker import Signal
msg = Signal('msg')
@msg.connect
def subscriber(sender, **kw):
print(f"Subscriber received data: {kw}")
sender._data = kw
print(f"Data saved to {sender.__dict__}.")
msg.send("Hello")
说明
blinker 是一个很值得使用的消息处理库,可以解决一些基于事件的业务处理问题
浙公网安备 33010602011771号