thrift 在python中使用了 tornado和 twisted 来作为异步的webserive服务提供异步接口,自身并没有实现
twisted: Generate Twisted-friendly RPC services.
tornado: Generate code for use with Tornado.
在使用tornado的使用,thrift0.9.1这个版本 生成的tornado python文件 和 最新版的 tornado 目录结构有变化,
导致引用的 类找不到,又考虑到如果有版本升级问题,所以放弃修改tornado或者使用低版本tornado,目前改为使用twisted。
1.首先 ,thrift 中 生产python文件默认是没有asybcClient这样接口的所有,查看帮组之后使用
thrift -gen py:tornado -out ./ hello.throft
子生成文件中我们可以看到Iface 中有很多 callback 的 回调函数
2.创建 异步client
:
25 transport = TSocket.TSocket("192.168.1.105", 7911)
26 transport = TTransport.TFramedTransport(transport)
27 protocol = TJSONProtocol.TJSONProtocolFactory()
28 transport.open()
29 client = Hello.Client(transport, protocol)
30 client.helloString("sad", callback)