Python thrift rpc TProcessPoolServer 原生的多进程服务模式
来源:互联网 发布:合肥网络销售诈骗案 编辑:程序博客网 时间:2024/06/06 12:31
以前通过多线程每个线程中再启进程的模式实现了多进程的服务模式。
今天发现其实进程池的模型是自带的。
这个Server在一个单独的文件中,与其它Server不在一起,不看代码不太容易发现。
示例代码
import sys, glob sys.path.append('./gen-py')from WormHoleRPCService import WormHoleRPCService from WormHoleRPCService.ttypes import * from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol from thrift.server import TProcessPoolServer from time import sleepimport multiprocessingdef work_hi(pipe) : passdef work_add(pipe , a , b) : passdef work_getMap(a) : passdef work_getList(a , b , c , d) : pass i = 0 while True : i += 1 ; if i > 30000000 : break res = [{a : 'tom' , b:'jim'} , {c : 'john' , d:'kobe'} ] return resclass WormHoleRPCServiceHandler: def __init__(self): self.log = {} def hi(self): print 'hi' def add(self , a , b) : return a + b def getList(self , a , b , c , d) : return work_getList(a , b , c , d) def getMap(self , a ) : return arpc_handler = WormHoleRPCServiceHandler() processor = WormHoleRPCService.Processor(rpc_handler) transport = TSocket.TServerSocket(port=9090) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() # You could do one of these for a multithreaded server server = TProcessPoolServer.TProcessPoolServer(processor, transport, tfactory, pfactory) print 'Starting the server...' server.setNumWorkers(5)server.serve() print 'done.'
阅读全文
0 0
- Python thrift rpc TProcessPoolServer 原生的多进程服务模式
- thrift(1)------基于thrift通信组件的简单RPC服务
- Python RPC 之 Thrift
- python thrift两种服务模式对比
- Thrift使用入门-RPC服务
- Thrift 个人实战--RPC服务的发布订阅实现(基于Zookeeper服务)
- RPC框架-Thrift的使用
- RPC 工具 --Thrift(二) Thrift 异步模式
- Thrift RPC
- Thrift对多接口服务的支持
- Thrift对多接口服务的支持
- hbase的thrift服务
- Hive的thrift服务
- Hive 的Thrift服务
- thrift系列 - harpc 基于thrift的轻量级rpc框架
- Thrift源码修改,改造RPC,支持多Processor模式(C#客户端调用)
- RPC入门总结(七)Thrift+Zookeeper实现服务治理
- JAX—RPC服务客户端的一般模式
- 给PullToRefresh添加头信息
- Servlet容器模型之ServletConfig、ServletContext
- SyntaxErrorException系列日记一:FUNCTION xxxxxx.xxxxxx does not exist
- 102. Binary Tree Level Order Traversal
- 用opencv库来检测ros深度图像数据中的障碍
- Python thrift rpc TProcessPoolServer 原生的多进程服务模式
- 67. Add Binary
- 遇见LayoutInflater&Factory
- Spring Boot 安装
- PL/SQL Developer导入、导出表结构和表数据
- 极光推送--RegistrationID
- vue.js踩过的一些坑
- MyBatis,动态传入表名,字段名的解决办法
- 磁共振指纹综述