blinker 是一个通过消息机制来实现解耦合库,提供了强大的功能。不过这个来的消息是通过的消息并非异步消息,像实现异步消息的自己修改下。
官网地址: http://discorporate.us/projects/Blinker/
看代码学技术
#!/usr/bin/env python
#coding=utf-8
'''
Created on 2011-9-6
@author: bruce
'''
from blinker import signal
from blinker.base import Signal
#注册一个命名消息
ready = signal('ready')
#创建一个消息订阅者
def subscriber(sender):
# print sender.name
print("Got a signal sent by %r" % sender)
#消息发送者
class Processor:
def __init__(self, name):
self.name = name
self.id = 'test_001'
def go(self):
#发送消息
ready.send(self)
print("Processing.")
def __repr__(self):
return '<Processor %s>' % self.name
def b_subscriber(sender):
print("Caught signal from processor_b.")
def xxx(sender):
print 'xxxx'
processor_b = Processor('b')
ready.connect(subscriber)
ready.connect(b_subscriber, sender=processor_b)
ready.connect(xxx, sender=processor_b)
#processor_b.go()
#----------------------------------------------------------------------------------
#注册一个消息
send_data = signal('send-data')
#关联消息
@send_data.connect
def receive_data(sender, **kw):
print("Caught signal from %r, data %r" % (sender, kw))
return 'received!'
#发送消息
result = send_data.send('anonymous', abc=123)
#----------------------------------------------------------------------------------
#匿名消息
class AltProcessor:
on_ready = Signal()
on_complete = Signal()
def __init__(self, name):
self.name = name
def go(self):
self.on_ready.send(self)
print("Alternate processing.")
self.on_complete.send(self)
def __repr__(self):
return '<AltProcessor %s>' % self.name
apc = AltProcessor('c')
@apc.on_complete.connect
def completed(sender):
print "AltProcessor %s completed!" % sender.name
apc.go()
#----------------------------------------------------------------------------------
dice_roll = signal('dice_roll')
@dice_roll.connect_via(1)
@dice_roll.connect_via(3)
@dice_roll.connect_via(5)
def odd_subscriber(sender):
print("Observed dice roll %r." % sender)
result = dice_roll.send(3)
分享到:
相关推荐
blinker:一个快速Python进程内信号/事件调度系统。
用于硬件的 Blinker python 库。适用于树莓派、香蕉派、linux。
Python 强大的信号库:blinkerPython 强大的信号库:blinker
blinker获取天气arduino程序
信号灯Blinker提供了一种快速调度系统,该系统允许任意数量的感兴趣的方订阅事件或“信号”。 信号接收方可以订阅特定的发送方,也可以接收任何发送方发送的信号。 它支持分派到连接的协程和接收器函数的任意混合。 ...
我们在学习开发Arduino时,经常会使用很多库。这里放一个第三方库文件,Arduino库blinker库。
Blinker-library-master library file for Arduino
ESP8266物联网开发必备神器,点灯科技 Blinker APP 安卓 blinker 2.4.6 最新版 解决各个手机应用商店下载不了最新版的问题,可随意拖拉添加物联网app ESP8266物联网开发必备神器,几分钟就可以开发一个物联网设备。
Blinker 语音控制 51单片机 点灯 blinker是一套跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。可用于智能家居、数据监测等领域,可以帮助用户更好更快地搭建...
Arduino esp8266开发板 点灯科技 blinker-library-master库文件 装blinker Arduino库 Windows:将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中 Mac OS:将下载好的blinker库解压到 文稿>...
api-ms-win-core-path-l1-1-0,...blinker-1.4-py2.py3-none-any.whl, get-pip.py, kaitaistruct-0.8-py2.py3-none-any.whl, pyperclip-1.8.2.tar.gz, setuptools-40.2.0.zip, setuptools-58.5.3-py3-none-any.whl
python38,32位版本,Flask包所需的依赖包,实测安装成功,压缩包里有截图,和说明。
Blinker与Arduino实现红外报警,通过人体红外感应传感器来进行检测,检测成功将数据上传到Blinker App软件上,消息通知来提醒有人刷入,可应用到指挥牧场与其他应用当中。
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
Blinker 天气时钟 esp8266+SH1106 OLCD屏显示V2
智能家电-科技点灯(库文件)blinker-library-0.3.80210803
将blink_library的文件夹复制到:我的文档下的Arduino文件夹下的 libraries文件夹里面。