zerorpc java_Zerorpc 支持暴露多个远程Api接口类
通常情况下,Zerorpc 只能初始化一个类,要是有一些任务场景,需要按资源或多个类初始化呢?
从zerorpc的源码core.py 74-82行可以看出, 如果methods是dict对象,直接返回;如果是类名,则转化成dict。 所以我们可以直接初始化成dict,而dict是支持n个。
我们可以依葫芦画瓢,在server端可以这样现实:
import zerorpc
_method = {}
def register(cls):
obj = cls()
prefix = cls.__name__
_method.update({'{}:{}'.format(prefix, k): getattr(obj, k)
for k in dir(obj)
if not k.startswith('_') and callable(getattr(obj, k))})
return cls
@register
class RpcServer1:
def add(self, x, y):
return x+y
@register
class RpcServer2:
def add(self, x, y):
return x*y
server = zerorpc.Server(_method, heartbeat=20)
server.bind("tcp://{0}:{1}".format('127.0.0.1', 4242))
server.run()
我们定义了两个类,分别使用了register装饰器(把每个类存入字典),然后在实例化rpc server的时候传入定义好的字典即可。
下面是客户端调用:
import zerorpc
class Client(zerorpc.Client):
def __init__(self, *arg, **kwargs):
self._prefix = kwargs.pop("prefix", "")
super(Client, self).__init__(*arg, **kwargs)
def set_prefix(self, prefix):
self._prefix = prefix
def __getattr__(self, method):
method = ":".join([self._prefix, method]) if self._prefix else method
return lambda *args, **kwargs: self(method, *args, **kwargs)
if __name__ == "__main__":
c1 = Client(prefix="RpcServer1")
c1.connect('tcp://127.0.0.1:4242')
c2 = Client(prefix="RpcServer2")
c2.connect('tcp://127.0.0.1:4242')
print(c1.add(5,5))
print(c2.add(5,5))
zerorpc java_Zerorpc 支持暴露多个远程Api接口类相关推荐
- 新网域名查询和注册API接口类 源码
最近公司要做一个基于新网的API,在自己的系统中实现实时查询域名注册情况,并且要能实时注册,注册费用自动从我们的代理帐户中扣除,下面是我写的核心实现类代码: public class XinN ...
- 新网域名查询和注册API接口类
public class XinNetApiBase { //默认代理编号 public readonly static string AgentID = "agent88888" ...
- API接口安全—webservice、Swagger、WEBpack
API接口安全-webservice.Swagger.WEBpack 1. API接口介绍 1.1. 常用的API接口类 1.1.1. API接口分类 1.1.1.1. 类库型API 1.1.1.2. ...
- api服务器开发语言,【API编写】介绍一个国内强大的API接口文档写作网站showdoc - 最好的编程语言 - 博客园...
这几天要写一个接口API文档,经理给我发过来一个,说要弄一个这样的接口文档,我一看,这可麻烦呀,有大纲有详细,我以为要用div+css去一个页面一个页面做呢,这工作量可不小,网站一搜索,竟然有可以直接 ...
- html5视频常用API接口
一.虽然有的属性是boolean类型,但仍旧建议按照XHTML书写(属性名="属性值")格式,避免出现错误 (下面加粗的属性为常用属性) 属性 值 功能描述 controls co ...
- php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能
2016年12月29日13:45:27 关于接口设计要说的东西很多,可能写一个系列都可以,vsd图都得画很多张,但是由于个人时间和精力有限,所有有些东西后面再补充 说道接口设计第一反应就是restf ...
- 有赞API接口 SDK 的开发经历
刚开始对接有赞API的时候遇到了一些奇怪的疑问. 有赞没有完整JAVA的示例,不出现类似其他开发平台中的demo示例文件参考,唯一的示例代码出现在页面上. 这增加了开发难度,需要花点时间去理解. 我在 ...
- Confluence 6 启用远程 API
XML-RPC 和 SOAP 远程 API 从 Confluence 5.5 开始已经废弃了.我们推荐你使用完全支持的 Confluence Server REST API. 希望启用 XML-RPC ...
- 青柠网络验证远程api使用方法
青柠网络验证2.0 vip版增加远程api功能,只要发条JS调试工具(请自行百度这个工具)能运行的js,在远程api里都可以运行. 功能暂时是试运行,如果使用过程中遇到问题,请联系群主. 注意以下事项 ...
- jenkins_使用Jenkins / Hudson远程API检查作业状态
jenkins 在进行演讲时,我编写了一个Hudson / Jenkins插件(适用于EclipseCon NA 2014) ,但我想发表有关该演讲中提到的想法的博客文章. 在这篇文章中,我解释了如何 ...
最新文章
- 设计模式之间可以相互功能替换吗?
- python wxpy_wxpy
- Vscode Python输出窗口中文乱码的解决办法
- 【maven插件】maven-resources-plugin
- linux db2创建存储过程语法,EF基础一-db2存储过程中循环语句while do...-oracle 创建DBLINK_169IT.COM...
- c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介
- 支付宝「集五福」的阳谋
- 通过C#查询SQLServer数据库超时
- OpenGL超级宝典(第7版)笔记18 位移、旋转、缩放、观察、透视矩阵 代码实现
- 菜刀之中国蚁剑-安装使用及下载地址
- pip问题集锦(pip是干什么的,pip安装速度过慢怎么办,--user是什么意思?)
- Bmob后端云(云数据库表的具体操作)
- Odoo与浪潮合资研发PS Cloud之在Odoo发送和接收电子邮件
- BUUCTF RE [SUCTF2019] SignIn
- 一张小名片引发的地球大危机
- 阿里巴巴融资破17亿美金创纪录
- 视频去水印工具哪个好用
- 黄药师遥祭衡卿文!-悲哉千古!
- FPGA之流水线算法
- Arcgis操作:网格划分
热门文章
- python 操作access数据库
- vector向量容器的一些基本操作
- c++线程间通信的几种方法_JAVA并发之线程amp;进程
- 16年10月计算机组成原理,福建师范大学16年8月课程考试《计算机组成原理》作业考核试题.doc...
- html修改列表内的audio样式,如何修改H5中的audio样式
- python中dtype与dtypes区别
- CopyQq program山寨QQ项目
- 遗传算法的原理与python实现
- 配置pytoch版人脸关键点网络pfld docker环境
- word图表自动编号