文档章节

Python远程方法调用 RPyC

沉淀岁月
 沉淀岁月
发布于 2016/11/16 11:22
字数 649
阅读 67
收藏 0

 

rpyc (Remote Python Call)为分布式计算环境提供了优良的基础平台。 使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3、5行代码即可完成以前的数千行代码的功能。

Remote Python Call (RPyC) 是一个 Python 的库用来实现 RPC 和分布式计算的工具。支持同步和异步操作、回调和远程服务以及透明的对象代理。

 

1.写服务器端的方法如下:
#-*- encoding: gb2312 -*-
import time
from rpyc import Service
from rpyc.utils.server import ThreadedServer
class TimeService(Service):
    def exposed_get_time(self):
        return time.ctime()      #time模块中的一个内置方法
s=ThreadedServer(TimeService,port=12233,auto_register=False)
s.start()
RPYC 这个包是我导入的一个外部包的哦!不过通过help一样可以查看到这个包的内在的一些东西哈哈!
2.服务器开启现在来让客户端进行访问了!
import rpyc
c=rpyc.connect('localhost',12233)
c.root.get_time()
c.close()
现 在来想一个事情。之前在RO通讯模块中就是我们在服务器端写了一个方法然后我们就可在客户端直接调用了哦!
比如我们在服务器端写了一个计算sum 函数  然后我们就可以在客户端进行调用这个函数了哦!
那我们来看一下这里的机制吧!
RPYC重点:
1.Client一定要 close()连接哦!
2.Server中exposed_打头的函数才能被 客户端调用。
所以如果写服务端代码的时候想要让客户端调用 就要加这一个前缀哦
c=rpyc.connect('localhost',12233) #首先要连接服务器
3.client要访问服 务器端代码通过c.root才能访问哦!
c.root.get_time()  调用服务器端方法了!
4.RPYC没有认证机制,任何客 户端都可以直接访问服务器端的暴露的方法了!

OK,联系当前在RO中写过的一个方法哦!
import time
from rpyc import Service
from rpyc.utils.server import ThreadedServer
class TimeService(Service):
    def exposed_sum(self,a,b):
        return a+b
s=ThreadedServer(TimeService,port=12233,auto_register=False)
s.start()
我 先在服务器端写了一个方法求和操作!
让客户端进行直接调用 吧!
import rpyc
c=rpyc.connect('localhost',12233)
print c.root.sum(1,2)
c.close()
本质与RO原理是一样的哦!
以后我们只需要在服务器端定义好一些写好的方法 然后在客户端直接调用就可以了!
v=c.root.function()
返回了一个值。如果是字符串,数字,在c.close之后仍然能 够调用的
如果为其他类型则不能访问了!

本文转载自:http://doudouclever.blog.163.com/blog/static/17511231020116263409365/

共有 人打赏支持
上一篇: 使用事务
下一篇: json_decode参数
沉淀岁月
粉丝 27
博文 257
码字总数 91615
作品 0
朝阳
高级程序员
私信 提问
Python RPC 远程调用脚本之 RPyC 实践

最近有个监控需求,需要远程执行集群每个节点上的脚本,并获取脚本执行结果,为了安全起见不需要账号密码登陆节点主机,要求只需要调用远程脚本模块的方法就能实现。 总结下python进行远程调...

大数据之路
2015/06/28
0
0
python RPC简单调用

1.首先要安装rpyc模块; #pip install rpyc 2.服务端 author = 'Administrator'import rpycfrom rpyc import Servicefrom rpyc.utils.server import ThreadedServerimport osclass Test(Ser......

jk409
2015/03/19
0
0
python学习之RPYC编程

http://blog.chinaunix.net/u2/84280/showart_1799629.html

红薯
2009/03/01
1K
0
用 Plumbum 开发 Python 命令行工具

摘要:本文翻译自 Python Plumbum 开源库的官方文档 Plumbum CLI 部分,主要介绍如何使用 Plumbum CLI 工具包来开发 Python 命令行应用程序,这是一个非常 Pythonic、容易使用、功能强大的工...

作者: Tomer Filiba
2018/05/04
0
0
python rpyc的应用 ——聊天的功能(带认证)

rpc:远程过程调用,一个协议,实现的语言有很多。顾名思义,在A机器远程调用B机器里面的函数。rpyc:python的远程过程调用。 首先是安装,我的环境:centos6.5 测试下,运行 没有错误就说明...

vasks
2016/04/01
174
0

没有更多内容

加载失败,请刷新页面

加载更多

百度黄埔学院将培养一批首席AI架构师,为“国之重器”赋能

深度学习高端人才不仅是AI发展的重要养分,也是企业转型AI巨大推动力。2019年1月19日,百度黄埔学院——深度学习架构师培养计划在百度科技园举行开学典礼,深度学习技术及应用国家工程实验室...

深度学习之桨
43分钟前
2
0
扒站wget仿站

wget -c -r -p -np -k http://xxx.com/xxx 其中: -c, --continue (断点续传) 接着下载没下载完的文件 -r, --recursive(递归) specify recursive download.(指定递归下载) -p, --page...

临江仙卜算子
45分钟前
2
0
Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
今天
3
0
如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
4
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部