摘要:是一個(gè)超快速的庫,最近一直在看的東西,考慮如何應(yīng)用到公司的項(xiàng)目中,模仿的方式二次封裝了一下。示例示例代碼在目錄啟動(dòng)和原文發(fā)布一個(gè)基于二次封裝的包博客時(shí)空路由器
mprpc 是一個(gè)超快速的Python RPC 庫,最近一直在看 RPC 的東西,考慮如何應(yīng)用到公司的項(xiàng)目中,模仿 Celery 的方式二次封裝了一下。
項(xiàng)目地址: mprpc_config
安裝pip install mprpc_config用法
構(gòu)建一個(gè)如下的目錄結(jié)構(gòu)
config.py 包含RPC配置屬性(任意命名)
INSTALLED_APP 必填參數(shù),list 類型,將每一個(gè)包含 RPC 接口的模塊名放進(jìn)去
app_module_name RPC 接口模塊(任意命名,可有多個(gè))
implement.py 接口模塊(任意命名,可有多個(gè)),里面包含 rpc 方法裝飾的接口函數(shù)
server.py RPC 服務(wù)器
初始化 mprpc_config 的 Configration 類,將 config.py 的模塊名 config 作為字符串傳入
導(dǎo)入 mprpc_config.rpc_server 的 RPCServer 和 StreamServer,啟動(dòng) RPC 服務(wù)器
使用 bind_class 方法將初始化后的所有 RPC 接口綁定給 RPCServer
使用 StreamServer 啟動(dòng) RPC 服務(wù)器
client.py RPC 客戶端(測(cè)試用,實(shí)際可分離)
客戶端啟動(dòng)方式可參考 mprpc 。
示例示例代碼在 example 目錄
server.py
from mprpc_config.rpc_server import RPCServer, StreamServer from mprpc_config import rpc_config if __name__ == "__main__": print("-------start server--------") config = rpc_config.Configuration("config") config.bind_class(RPCServer) server = StreamServer(("127.0.0.1", 6000), RPCServer) server.serve_forever(stop_timeout=10)
client.py
from mprpc_config.rpc_client import RPCClient, RPCPoolClient from mprpc_config.rpc_client import RPCPool print("---------- client ----------") client = RPCClient("127.0.0.1", 6000) print("2 add 4: ", client.call("add", 2, 4)) print("2 plus 4: ", client.call("plus", 2, 4)) print("2 minus 4: ", client.call("minus", 2, 4)) print("---------- done ----------") print("---------- client pool ----------") client_pool = RPCPool(RPCPoolClient, dict(host="127.0.0.1", port=6000)) with client_pool.connection() as client: print("2 add 4: ", client.call("add", 2, 4)) print("2 plus 4: ", client.call("plus", 2, 4)) print("2 minus 4: ", client.call("minus", 2, 4)) print("---------- done ----------")
啟動(dòng) server 和 client
$ python server.py ---------- server ---------- $ python client.py ---------- client ---------- 2 add 4: 6 2 plus 4: 8 2 minus 4: -2 ---------- done ---------- ---------- client pool ---------- 2 add 4: 6 2 plus 4: 8 2 minus 4: -2 ---------- done ----------
原文:發(fā)布一個(gè)基于 mprpc_config 二次封裝的 pip 包
博客:時(shí)空路由器
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44908.html
摘要:項(xiàng)目介紹是一個(gè)全新的語言的運(yùn)行時(shí)環(huán)境,基于目前最新的進(jìn)行打造,支持最新的語言規(guī)范,同時(shí)提供了自己的運(yùn)行時(shí)標(biāo)準(zhǔn)庫。同樣也在的基礎(chǔ)上進(jìn)行打造,實(shí)現(xiàn)了一個(gè)除開發(fā)之外的一個(gè)全新的運(yùn)行環(huán)境。發(fā)布核心虛擬機(jī)的鏡像。整合運(yùn)行時(shí)框架。 showImg(https://segmentfault.com/img/bVbnQXK); polarphp 項(xiàng)目介紹 polarphp是一個(gè)全新的PHP語言的運(yùn)行時(shí)...
摘要:做數(shù)據(jù)分析,,你值得擁有。的包管理器有和,本來是很方便的。另外,本身還提供了包管理器來安裝或升級(jí)相應(yīng)的包。八斬刀是詠春中最厲害的兵器,是一條大蟒蛇,翻譯為水蟒。如果數(shù)據(jù)科學(xué)是武俠中的詠春,那么便是數(shù)據(jù)科學(xué)中的八斬刀。 摘要:武俠,是成人的童話。江湖,是門派的斗爭(zhēng)。數(shù)據(jù)科學(xué)已經(jīng)開山立派,Python便是其中獨(dú)領(lǐng)風(fēng)搔的兵器。如果數(shù)據(jù)科學(xué)是IT武俠中的詠春,那么Anaconda便是數(shù)據(jù)科學(xué)中...
摘要:本文為教程的第二部分,主要以微信控制器群發(fā)助手好友刪除檢測(cè)為例演示如何調(diào)用微信。教程流程簡(jiǎn)介這一系列教程從如何分析微信協(xié)議開始,第一部分教你如何從零開始獲取并模擬擴(kuò)展個(gè)人微信號(hào)所需要的協(xié)議。 現(xiàn)在的日常生活已經(jīng)離不開微信,本文將會(huì)拋磚引玉演示如何使用Python調(diào)用微信API做一些有意思的東西。 看完這一系列教程,你就能從頭開始實(shí)現(xiàn)自己關(guān)于微信的想法。 本文為教程的第二部分,主要以微信...
摘要:三實(shí)踐案例案例簡(jiǎn)介分布式系統(tǒng)中,微服務(wù)基礎(chǔ)組件等,系統(tǒng)中間件,等,對(duì)常用功能配置等,進(jìn)行二次淺封裝并統(tǒng)一集成管理,以滿足日常開發(fā)中基礎(chǔ)環(huán)境搭建與臨時(shí)工具的快速實(shí)現(xiàn)。 一、背景簡(jiǎn)介 分布式系統(tǒng)中存在很多拆分的服務(wù),在不斷迭代升級(jí)的過程中,會(huì)出現(xiàn)如下常見的棘手情況: 某個(gè)技術(shù)組件版本升級(jí),依賴包升級(jí)導(dǎo)致部分語法或者API過期,或者組件修復(fù)緊急的問題,從而會(huì)導(dǎo)致分布式系統(tǒng)下各個(gè)服...
摘要:在只有少量服務(wù)器的情況下,大多數(shù)運(yùn)維人員會(huì)選擇手動(dòng)更新,減少自動(dòng)化部署發(fā)布的開發(fā)成本。五自動(dòng)化部署發(fā)布示例簡(jiǎn)要說明下我們的項(xiàng)目如何使用實(shí)現(xiàn)了多個(gè)環(huán)境的自動(dòng)化部署發(fā)布。 showImg(https://segmentfault.com/img/bVJEL6?w=500&h=250); 一、面臨的問題 一個(gè)完整的程序開發(fā)流程少不了部署發(fā)布這個(gè)環(huán)節(jié),而部署發(fā)布是一個(gè)重復(fù)的過程,最基本的操作包...
閱讀 3225·2021-11-10 11:35
閱讀 1321·2019-08-30 13:20
閱讀 1145·2019-08-29 16:18
閱讀 2160·2019-08-26 13:54
閱讀 2184·2019-08-26 13:50
閱讀 982·2019-08-26 13:39
閱讀 2509·2019-08-26 12:08
閱讀 1974·2019-08-26 10:37