使用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有没有办法使多个对象初始化更紧凑?   java确保BUnit包和测试包不包含在生产代码中   java如何使JTextField更小,而不是填满整个空间?   javaawt的矩形交点   用户连续登录应用程序的java条纹(Android)   maven如何在服务器上运行java项目,并将其作为jar添加到EAR项目中   java如何在jar/war的资源文件夹中创建png?   swing在Java中未选择列表项时禁用按钮   java GridView x BaseAdapter并在onItemClick中重新加载   java Apache POI未应用某些颜色索引   java创建URL使用uri有什么区别。解析/uri。生成器/连接字符串?   java JavaFX jfoenix运行时错误(JFXDatePicker)   右旋转二叉搜索树   在Java标准版中运行Java移动应用程序   java为什么要为每个实例创建静态hashmap?   java如何使用RTC唤醒和报警意图   java获取对象中的JSON表达式   (Java)服务器不接受多个连接   java为什么我的目的地为null?   java使用多个参数执行存储过程,并使用spring数据jpa将结果集映射到非实体类