使用zeromq的轻松python rpc

wirepickle的Python项目详细描述


线腌菜

使用pickle通过ZeroMQ轻松调用python远程过程。 允许您在每个传输层上将单个类实例公开为api服务器 ZeroMQ提供的。

快速设置

使用您喜爱的软件包管理器安装Wirepickle:

$ pip install wirepickle

服务器

接下来,在服务器上,用@expose装饰器注释要公开的方法:

fromwirepickle.serverimportexpose,ServerclassFoo:@expose('bar')defbar(self):print('bar')return0@expose('baz')defbaz(self,arg1,kwarg1='baz'):print(kwarg1)returnself.bar()+arg1

注意,您可以返回任何可以作为返回值进行pickle的内容, 这个stdout将镜像到客户端。

然后,将类的实例传递给Server构造函数以创建服务器。 要开始侦听,请使用 绑定uri:

if__name__=='__main__':instance=Foo()Server(instance).listen('tcp://*:12345')

客户

只需传递一个要连接的uri并开始使用这些方法。

fromwirepickle.clientimportClientfoo=Client('tcp://127.0.0.1:12345')foo.bar()

如果需要,可以将timeoutkwarg传递给Client构造函数:

foo=Client('tcp://127.0.0.1:12345',timeout=1_000)# milliseconds

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

推荐PyPI第三方库


热门话题
java支持servlet和JSP的使用   java计算模式   Windows上的python PySpark安装异常:Java网关进程在发送其端口号之前退出   java如何解决类中的“Android错误”方法setSupportActionBar?   java JTable为什么单元格颜色不起作用   通过运行时注入实现Java多态性   在Glassfish上使用@EJB注释和Maven的java应用程序客户端   bufferstrategy在java中使用createBufferStrategy()时,拥有2个以上的缓冲区是否有帮助?有什么坏处吗?   用java格式化字符串   带有mvn devserver的Google App Engine Java失败:缺少“guestbook/target/guestbook1.0SNAPSHOT”   java如何测量刚刚收到的UDP数据包大小?   java调用在运行时确定类的泛型方法   java Spring Boot 2.2.4禁用安全性   在java中,如何将文件(通过URL寻址)读入字符串?