ToRPC(Tornado + RPC) 是一个的基于 Tornado IOLoop 的异步TCP和双向通信的RPC的Python实现。ToRPC非常轻量级,性能优秀(尤其是在PyPy环境下)。
注意:目前为止,ToRPC只在CPython 2.7+和PyPy 2.5+上测试过。
RPC 服务器
from tornado import ioloop from torpc import RPCServer server = RPCServer(('127.0.0.1', 5000)) @server.service.register() def echo(x): return x server.start() ioloop.IOLoop.instance().start()
RPC 客户端
from tornado import ioloop, gen from torpc import RPCClient def result_callback(f): print(f.result()) @gen.coroutine def using_gen_style(): want_to_say = 'way to explore' ret = yield rc.call('echo', want_to_say) assert ret == want_to_say print('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
处理器: Intel i5-3470 3.20GHz
内存: 8 GB 1600 MHz DDR3
Python: 2.7.10 PyPy: 4.0.0
environment | call coroutine(qps) | callback(qps) |
---|---|---|
Python(with timeout) | 9842 | 11614 |
Python | 13192 | 16638 |
PyPy(with timeout) | 40486 | 41225 |
PyPy | 53252 | 59151 |
PyPy(unix domain) | 67100 | 74362 |
这个基准测试中,Python循环10w次,PyPy循环50w次,然后运行3次, 结果在gist:benchmark_result.txt
import org.springframework.beans.BeansException; import org.springframework.beans.factory.DisposableBean; import org.springframework.context.ApplicationContext; import org.springframework.context.Appl
本文向大家介绍Python networkx包的实现,包括了Python networkx包的实现的使用技巧和注意事项,需要的朋友参考一下 networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。图是由顶点、边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系。顶点和边也可以拥有更多的属性,以存储更多的信息。 对于network
ID3算法python实现 数据集来源《机器学习实战》:https://github.com/apachecn/MachineLearning/blob/master/input/3.DecisionTree/lenses.txt young myope no reduced no lenses young myope no normal soft
本文向大家介绍python实现简单的socket server实例,包括了python实现简单的socket server实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现简单的socket server的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。
问题内容: 我找到了它并以它为基础,但它开箱即用时却无法正常工作。我的目标也是将其视为程序包而不是命令行实用程序,因此我的代码更改将反映出来。 当我向设备发送基本命令时,它将返回以下内容。 我的代码读取第一行,但是随后出现错误消息,表明连接暂时不可用,并且没有获得第二行。如果我将其更改为阻塞,它只会阻塞并且永远不会返回。有什么想法吗? 问题答案: 如果您只使用它是否有效? 我认为您应该尝试一些更简
问题内容: gevent和eventlet将greenlet包用于异步IO。它被编写为C扩展,因此不适用于Jython或IronPython。如果性能无关紧要,那么在纯Python中实现greenlet API的最简单方法是什么。 一个简单的例子: 应该打印12、56、34(而不是78)。 问题答案: 自2.5版以来,内置于标准Python发行版中的协同例程可以实现这种目的。如果IronPytho
本文向大家介绍python实现ping的方法,包括了python实现ping的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现ping的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍SpringCloud融入Python的实现,包括了SpringCloud融入Python的实现的使用技巧和注意事项,需要的朋友参考一下 前言 该篇文章分享如何将Python Web服务融入到Spring Cloud微服务体系中,并调用其服务,Python Web框架用的是Tornado 构建Python web服务 引入py-eureka-client客户端 manage.py 大
本文向大家介绍python em算法的实现,包括了python em算法的实现的使用技巧和注意事项,需要的朋友参考一下 以上就是python em算法的实现的详细内容,更多关于python em算法的资料请关注呐喊教程其它相关文章!