文档章节

Python远程方法调用 RPyC

沉淀岁月
 沉淀岁月
发布于 2016/11/16 11:22
字数 649
阅读 40
收藏 0
点赞 0
评论 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/

共有 人打赏支持
沉淀岁月
粉丝 25
博文 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
用 Plumbum 开发 Python 命令行工具

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

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

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

vasks
2016/04/01
174
0
Python远程方法调用--RPyC

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

匿名
2009/03/01
7.4K
0
python调用powershell、远程执行bat

python调用本地powershell方法 1、现在准备一个简陋的powershell脚本,功能是测试一个IP列表哪些可以ping通: function test_ping($iplist){ } test_ping args[0] python简陋的调用方法: # ...

zhoujie0111
2013/12/31
0
0
Python 聊天室 II(SimpleXMLRPCServer模块实现)

并不是上一个用SocketServer的聊天室的延续。用远程调用完成的聊天室。 正好有Java的RMI聊天室的作业,就先用Python写了一个简单的类似远程调用的东西,逻辑完成之后,在Java上写一遍也是水到...

FuniK
2012/12/19
0
0
Python 2.6 亮点:multiprocessing模块

本来以为Python 2.6只是Python 3.0的过渡版本,不会有太多的新功能。但看到这个2.6的重大改动列表,才发现自己挺落后的。在2.6中新增的multiprocessing模块也绝对是Python 2.6的杀手级应用(...

索隆
2012/05/02
0
0
新课上线|Python实现图片拼接与混合、XML-RPC文件共享程序等

关注「实验楼」,每天分享一个项目教程 最近又上线了哪些新课程?快来看看吧~ 会 员 课 一、《Python3 实现图片拼接与混合》 课程来源:selfim 课程简介:本课程主要是利用 Python 的第三方...

moy37rqw1jarn33bgzk
05/12
0
0
用VIM写OSCHINA的博客

前几天看了用《使用Live writter 在OSCHINA上写博客》的文章,又看了站长@红薯的接口程序,真是 Lucky,支持xmlrpc。有很多插件支持wordpress的xmlrpc接口,想尝试着弄过去,就萌生了用VIM来写...

AustinXiao
2013/05/14
0
54

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(五)- 文字排版样式和效果

CoreText进阶(五)- 文字排版样式和效果 效果 以下是三个设置了不同属性的效果图 第一个设置了文字颜色为红色,字体为16号 第二个设置了文字颜色为灰色,字体为16号,对其为居中 第三个设置...

aron1992
26分钟前
1
0
10.23 linux任务计划cron~10.27 target介绍

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是...

洗香香
36分钟前
0
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

20.20 告警系统主脚本 告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "en...

lyy549745
39分钟前
0
0
Don’t Repeat Yourself

在软件工程中,Don’t Repeat Yourself(DRY)是软件开发的原则,旨在减少重复,用抽象代替它,使用数据规范化来避免冗余。 这个原则在维基百科上是说是由Andy Hunt和Dave Thomas《The Pragmat...

woshixin
41分钟前
0
0
搭建webpack项目框架

作者:汪娇娇 时间:2018年6月4日 一、说明 随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。w...

娇娇jojojo
48分钟前
0
0
Java基础——面向对象(内部类)

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 内部类: 1.有名内部类 2.无名内部类 内部类申请...

凯哥学堂
56分钟前
0
0
HttpClient内部三个超时时间的区别

RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(config.connReqTimeout) //从连接池中获取连接的超时时间 ......

1713716445
今天
0
0
每天一个命令SCP

每天一个命令:SCP scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速...

河图再现
今天
0
0
cron/chkconfig/systemd/unit/target

linux任务计划 : cron工具 任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。 查看linux中任务计划的配置文件: /etc/crontab [root@yolks-001 ~]...

Hi_Yolks
今天
1
0
ftp攻略

Vsftpd完全攻略(一)ftp原理与vsftp安装:https://www.iyunv.com/thread-44698-1-1.html Vsftpd完全攻略(二)设置匿名用户也支持下载和上传与创建目录:https://www.iyunv.com/forum.php?mo...

寰宇01
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部