def _handleData(self):
self.deferHandler().addCallback(lambda m: self.writeData(m))
def deferHandler(self):
if self.head[0] == self.protocol.MSG_REQUEST_PEERLIST:
return defer.succeed(self._readPeerListData())
elif self.head[0] == self.protocol.TS_RC_INFOHASH:
return defer.succeed(self._readInfoData())
else :
return defer.succeed(False)
#将需要readInfodata里面包含了数据库操作,可能引起阻塞,所以将这个函数完成后应该调用的操作writeData用addcallback添加,让其自己去进行下一步操作
|