使用tornado ioloop的小型异步tcp和双工rpc实现。

torpc的Python项目详细描述


torpc(tornado+rpc)是在 基于tornado ioloop的python。它很轻很高 性能(尤其是在pypy上)。

注意:torpc只在CPython 2.7+和^{tt2}上进行了测试$ 直到现在。

##示例

rpc服务器

fromtornadoimportioloopfromtorpcimportRPCServerserver=RPCServer(('127.0.0.1',5000))@server.service.register()defecho(x):returnxserver.start()ioloop.IOLoop.instance().start()

rpc客户端

fromtornadoimportioloop,genfromtorpcimportRPCClientdefresult_callback(f):print(f.result())@gen.coroutinedefusing_gen_style():want_to_say='way to explore'ret=yieldrc.call('echo',want_to_say)assertret==want_to_sayprint('gen_style complete')rc=RPCClient(('127.0.0.1',5000))rc.call('echo','hello world',callback=result_callback)future=rc.call('echo','code for fun')future.add_done_callback(result_callback)using_gen_style()ioloop.IOLoop.instance().start()

请参阅examples中的更多内容。

性能

操作系统:CentOS 6.6 x64 CPU:Intel i5-3470 3.20GHz 内存:8 GB 1600 MHz DDR3 Python:2.7.10 Pypy:4.0.0

environmentcall coroutine(qps)callback(qps)
Python(with timeout)984211614
Python1319216638
PyPy(with timeout)4048641225
PyPy5325259151
PyPy(unix domain)6710074362

在这个基准测试中,python循环10万次,pypy循环10万次, 然后每次运行3次,结果在gist:benchmark_result.txt

文件

中文

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中将字符串转换为另一个字符串   我有一个功能模型(xml格式)。当遍历所需的特性时,是否有方法为任何给定的特性模型生成java类?   泛型如何在我自己的链表中将迭代器定义为Java中的节点?   Java Lucene对于同一Lucene查询语言,BooleanQuery和QueryParser查询的结果不同   java禁用REST安全性和身份验证Websphere Commerce   我如何访问本地。属性变量?Java Swing正确使用变量   使用Java 1.7为Kotlin配置Gradle   java如何将mvn项目分解为多模块?   java无与伦比的eclipse调试配置。如何删除?   java如何谷歌翻译API,当我尝试时没有提供正确的输出   java有没有更好的方法将变量传递给我的视图?   在变量Java Android中存储用户EditText中的编号   javaapachecamel当反序列化对象时,它抛出一个异常:com。fasterxml。杰克逊。果心JsonParseException:无法识别的令牌   java简单UI循环,找不到bug