类的位置scrapy.signalmanager.SignalManager。主要是对pydispatch.dispatcher的一层封装。
首先来看看pydispatch.dispatcher都有哪些功能:项目主页
这个模块主要提供了消息的发送和接收功能,主页的示例:
To set up a function to receive signals:
from pydispatch import dispatcher SIGNAL = 'my-first-signal' def handle_event( sender ): """Simple event handler""" print 'Signal was sent by', sender dispatcher.connect( handle_event, signal=SIGNAL, sender=dispatcher.Any )
The use of the Any object allows the handler to listen for messages from any Sender or to listen to Any message being sent. To send messages:
first_sender = object() second_sender = {} def main( ): dispatcher.send( signal=SIGNAL, sender=first_sender ) dispatcher.send( signal=SIGNAL, sender=second_sender )
Which causes the following to be printed:
Signal was sent by <object object at 0x196a090> Signal was sent by {}一个简单的的例子: 点击打开链接
目测这个类是异步事件驱动的。下面来看看SignalManager对其的包装: